WordPressの子テーマを翻訳できるようにした覚書
通常のテーマとの違い 通常のテーマでは、翻訳可能にするためにload_theme_textdomain関数をフックさせます。 [php] add_action(‘after_setup_theme’ […]
目次
通常のテーマとの違い
通常のテーマでは、翻訳可能にするためにload_theme_textdomain関数をフックさせます。
[php]
add_action(‘after_setup_theme’, ‘my_theme_setup’);
function my_theme_setup(){
load_theme_textdomain(‘my_theme’, get_template_directory() . ‘/languages’);
}
[/php]
ただこの方法を子テーマでも採用すると、「get_template_directory()」が親テーマのディレクトリを取得してしまうため翻訳ファイルを読み込みません。
そのため翻訳ファイルの読み込み先を「get_template_directory()」ではなく「get_stylesheet_directory()」で取得します。
また親テーマにも翻訳ファイルが存在する場合もありますので、「load_child_theme_textdomain()」を使用します。
コードサンプル
[php]
add_action( ‘after_setup_theme’ , ‘childTheme_i18n’ );
function childTheme_i18n(){
$theme_uri = get_stylesheet_directory(). "/languages";
load_child_theme_textdomain( ‘childThemeName’, $theme_uri );
}
[/php]
「childThemeName」をテキストドメインに指定しておけば、これで読み込みしてくれるはずです。