Wordpressのバックエンドを英語にして、フロントエンドに別のロケールを使いたいのですが。
これまでのところ、フロントエンドで使用したいロケールをwpconfigに設定してから、functions.phpに次のようなものを追加することでそれを実現できる可能性があります。
add_filter('locale', 'mytheme_backendlocale');
function mytheme_backendlocale($locale) {
if ( is_admin() ) {
return 'en_US';
}
return $locale;
}
これは私がやりたいことを達成するためのベストプラクティスですか、それとも別のやり方をするべきですか?
プラグインをインストールします WP Native Dashboard 。それであなたはあなたのwp-config.php
でフロントエンドのために1つの言語を設定することができ、各ユーザーはバックエンドのために別の言語を選ぶことができます。
詳細とスクリーンショットについては コメントテンプレートの言語の変更 を参照してください。
あなたが必要としているかもしれないプラグインがあります。
今までのところ、私はFulvioの答えが最良のものだと思います。私はたった1行のマルチサイト設定でもそのフィルタを使っています。
add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
return 'en_US';
}
基本的に時々、そしてこのケースでは、私はプラグインの代わりに多言語サイトのためにマルチサイトを使います。また、私は各言語に1つのテーマを持っています(通常はメイン言語の子テーマ)。したがって、ネットワークのすべてのサイトには独自の言語がありますが、管理者側では、イタリア語のすべてのインターフェイスが必要です。
だから私は何をしています:
注:このフィルタは管理言語を変更しないので、is_admin()かどうかを確認する必要はありません。
まだ誰かがそれを探しているのであれば、これがバージョン4.7以降にすべきことです。
function wp_noshor_redefine_locale($locale) {
if( is_admin() ):
switch_to_locale('en_US');
endif;
}
add_filter('init','wp_noshor_redefine_locale');
これはダッシュボードに英語でロードすることを強制します、そしてあなたは設定に行き、あなたが望む言語を設定することができます。