海外のテンプレート/テーマを日本語化する①ではWordpress 海外テーマ/テンプレートに日本語翻訳ファイルを追加する方法でした、今回は子テーマで日本語翻訳ファイルを追加する方法になります。
前回で取り上げた公式サイトからの無料テーマ「Virtue」で作業します。
WordPressの「子テーマ」とは
子テーマは、親テーマと呼ばれる別のテーマの機能とスタイルを継承したテーマです。既存のテーマを変更する方法として、子テーマが推奨されています。
今回の場合ですとテーマ「Virtue」の子テーマ「Virtue_child」を作りカスタマイズは「Virtue_child」で行うということです。(子テーマの名前は自由)
- テーマを直接変更した場合、そのテーマがアップデートされると変更が失われるかもしれません。子テーマを使用すればテーマの変更は確実に保持されます。
- 子テーマを使用することで開発時間を短縮できます。
- 子テーマの使用することでWordPressのテーマの開発を良い形で学べます。
海外のテーマ/テンプレートを利用する場合、最低日本語がきれいに表示されるようにフォントの設定などを行います。親テーマのスタイルシートに書き込んでもいいのですがテーマのアップグレードでせっかく設定した項目が消えてしまうかもしれません。
子テーマに記述しておけばその心配はなくなります、また、子テーマの設定に失敗しても親テーマは無傷です。
海外のテーマ/テンプレートを利用する場合は子テーマの作成をおすすめします。
WordPressの「子テーマ」の作成方法
今回作成した子テーマの内容です。
Virtue_child
フォルダの名前は親テーマ+「_child」がわかりやすいと思います。
style.css
1 2 3 4 5 6 |
@charset "utf-8"; /* Template: virtue Theme Name: virtue_child Author: DIY Wordpress */ |
Template: 親テーマフォルダ名(テンプレートの名前ではなくフォルダ名です)
Theme Name: 子テーマフォルダ名(作った子テーマのフォルダ名)
Author: 名前(適当です、自分の名前でいいです)
日本語フォントの設定などは、ここに追記します。
functions.php
親テーマのスタイルシート読み込み
親テーマのスタイルシート読み込みと、日本語翻訳ファイル読み込みを行います。親テーマのスタイルシートの読み込みに以前はスタイルシートに「@import」で記述していたのですが、現在は「functions.php」での読み込みが推奨されているので「functions.php」で設定します。
子テーマに入れた日本語翻訳ファイル読み込み
作成した日本語翻訳ファイル「ja.mo」を読み込みます。今回は「ja.mo」を「languages」フォルダに入れてあります。
load_child_theme_textdomain( ‘virtue‘, get_stylesheet_directory() . ‘/languages’ )
virtue は親テーマの「テキストドメイン」になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php /** * 親テーマのスタイルシートを読み込み */ add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } /** * 子テーマの日本語化ファイル読み込み */ function my_child_theme_setup(){ load_child_theme_textdomain( 'virtue', get_stylesheet_directory() . '/languages' ); } add_action( 'after_setup_theme', 'my_child_theme_setup' ); |
出来上がった「子テーマ」をFTP接続で直接アップロード、もしくはフォルダを「.zip」に圧縮してWordpress管理画面からテーマを追加して有効にすれば終了です。
親テーマの「テキストドメイン」の見つけ方
親テーマの「テキストドメイン」はほとんど親テーマのフォルダ名ですが、テーマにより異なる場合があります。今回の「Virtue」では「functions.php」で同じと確認できました。
※海外テーマ/テンプレートでは「テキストドメイン」がフォルダ名ではなく「会社名」になっていることがよくあります。また、「functions.php」ではなく「theme-setup.php」などに記載されていることもあります。
※「style.css」に記載されているテーマもあるみたいです。 Text Domain: ●●● (見たことはありませんが)
1 |
load_theme_textdomain('virtue', get_template_directory() . '/languages'); |
この記事は過去に運営していた<DIYワードプレス>からの転載です。1年以上前に書かれたものですので情報が古い可能性があります、よく調べてから参考にしてください。
コメント