子テーマの言語ファイルを読み込ませて利用する方法

WordPressテーマカスタマイズ

子テーマを作成したとき、翻訳した日本語(英語の対訳)ファイルも子テーマに設定した言語ファイルを利用したい、またデフォルトテーマのアップデートのことを考えて子テーマで言語ファイルを利用したいときなどあると思いますので、その方法をある程度噛み砕いて書いていければと思います。

子テーマの言語ファイル利用に関して、実際の流れというか方法を交えて書きます。

1.子テーマの言語ファイルを利用するので、子テーマのフォルダに「languages」フォルダ(ディレクトリ)を用意します。

例えとしては、TwentyTenやTwentyElevenのテーマにある「language」フォルダがあるので、フォルダごと子テーマにコピーします。

2.子テーマ「language」フォルダに言語ファイルを用意します。

デフォルトの親テーマのlanguagesフォルダには、「ja.po」ファイルがあると思いますので、Poeditを使用するときに利用します。

※言語ファイルが無い場合、該当するテーマの言語(翻訳)ファイルを探すか、1から作成することになります。

3.英語の日本語対訳を表示するために対訳ソフト「Poedit」などを使用します。

Poeditoの簡単な使用方法は、以前書いた記事(翻訳エディタPoeditを使い日本語表示を更新)を読んでください。
実際に対訳ソフトを使用するのは、他の設定が終わった後になると思います。

4.子テーマにfunctions.phpファイルを作成して以下のコードを入力します。

<?php
add_action('after_setup_theme', 'child_setup');
if(! function_exists('child_setup')):
function child_setup() {
load_theme_textdomain('child', STYLESHEETPATH . '/languages');
}
endif;
?>

コードの簡単な説明
例として、「child_setup」という名前の関数を定義してますが、好きな任意の関数名で設定してください。下のコードには、child_setupという単語が3箇所ありますので、変更する場合は全て同じように変更してください。

load_theme_textdomainにある「child」の部分(第1引数)には、子テーマのフォルダ名を書きます。

※子テーマのパスについて
ローカル環境でのテスト結果、「STYLESHEETPATH」だけ、言語ファイルへのパスがうまく通りました。

※上記コードについて、ローカル環境でのテスト結果、子テーマを使用している場合に親テーマ、子テーマどちらのfunctions.phpに書いても子テーマに用意した言語ファイルが有効になりました。

5.テンプレートを編集して、子テーマの言語ファイルを読み込ませる

【例 TwentyTen:Poeditを使い、原文「Mate」を「メタ情報です」と変更した場合】

子テーマ使用時で子テーマには「sidebar.php」ファイルがない状態で、親テーマの「sidebar.php」ファイルの34行目あたりにある以下のコードの「twentyten」の部分を「child」に変更してサイトで表示の確認をすると「メタ情報です」と表示されるはずです。

【変更前】

<h3 class=&quot;widget-title&quot;><?php _e( 'Meta', 'twentyten' ); ?></h3>

【変更後】

<h3 class=&quot;widget-title&quot;><?php _e( 'Meta', 'child' ); ?></h3>

※「child」はfunctions.phpファイルの「load_theme_textdomain()」で設定した名前です。

【親テーマで子テーマ言語ファイル利用するとき】
上記コードのように変更したいところの「twentyten」の部分を「child」に変更すると、子テーマの言語ファイルを使用することになります。

【子テーマで子テーマ言語ファイル利用するとき】
親テーマのテンプレートを改変せずに子テーマで言語ファイルの利用先を変更するときは、子テーマに「sidebar.php」ファイルなど子テーマにテンプレートを作成して、「twentyten」の部分を「child」に変更します。

子テーマfunctions.php関連の日本語ファイル利用については後日書きます。

参考サイト:ヘボプログラマの部屋 twentytenの子テーマを作成してみた

スポンサーリンク

コメント

タイトルとURLをコピーしました