WordPressの翻訳ファイル(.mo)をプログラム的に書き換える方法です。
WordPress本体側や特定プラグインの出力文字列を強制的に変更できます。
◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。
functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。 拡張用のfunctions.phpを新規作成する 最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成し...
コードを追加する
functions.phpとかに以下のコードを追加します。
// 翻訳ファイルの改変
add_filter('gettext', function ($translation, $text, $domain) {
switch ($text) {
case 'Select Category': {
$translation = $text;
break;
}
}
return $translation;
}, 10, 3);

これは例。上記コードを利用するとカテゴリ用ウィジェットの文字列が英語(Select Category)になります。

英語にするの好きだね。
仕組み
gettextってfilterを使うと翻訳ファイル(.mo)の処理に割り込めます。
指定する3つの引数が重要で、簡単にまとめるとこうなります。
$translation | 翻訳されたテキスト |
$text | 元々のテキスト |
$domain | 識別用ドメイン |
ドメインに関してはWordPress本体側ならdefaultだと思います。
対象がプラグインの場合はコードとか覗いて調べる必要あるので頑張って。
結論として、翻訳後の値がreturnした値に強制的に変更されます。
その過程の条件分岐は内容次第。追加の情報を付加するような使い方も可能です。
あとがき
翻訳ファイル(.mo)自体が変更できる状況なら直接ファイルを修正するほうがいい。
今回の処理は本体側とかプラグインみたいな部分を強制的に変更するために使います。
この記事は参考になりましたか?
コメント