WordPress のテーマを英語以外の言語に設定したいのですが、WordPress のコントロール パネルは英語のままにしておきたいです。どうすればそれを達成できますか?
wp-config.phpを変更define('WPLANG', '');
しても、コントロール パネルの言語も変更されるため、役に立ちません。
プラグインには興味がありません。必要なのはテーマの言語を設定することだけですが、コントロール パネルは設定しません。
ありがとう。
WordPress のテーマを英語以外の言語に設定したいのですが、WordPress のコントロール パネルは英語のままにしておきたいです。どうすればそれを達成できますか?
wp-config.phpを変更define('WPLANG', '');
しても、コントロール パネルの言語も変更されるため、役に立ちません。
プラグインには興味がありません。必要なのはテーマの言語を設定することだけですが、コントロール パネルは設定しません。
ありがとう。
以下に例を示します。フロント エンドはオランダ語、バック エンドのデフォルトは英語です。
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) :
define( 'WPLANG', 'nl_NL' );
else :
define( 'WPLANG', '' );
endif;
WordPress 4.0 はWPLANG
定数 ( link ) を廃止しました。サイトの言語は、管理パネルから設定します: [設定] -> [一般] -> [サイトの言語]。
開発者は、...で$locale
グローバルを定義することにより、ロケールを変更できるようになりました。wp-config.php
if( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) :
$locale = 'nl_NL';
else :
$locale = 'en_US';
endif;
... またはlocale
フィルターを使用:
add_filter( 'locale', 'so16425245_filter_locale', 0, 1 );
function so16425245_filter_locale( $locale )
{
if( strpos( $_SERVER['REQUEST_URI'], '/wp-admin/' ) !== false )
return 'en_US';
return 'nl_NL';
}
管理者 AJAX に関する Greeso の回答も参照してください。
「ディギー」による答えは素晴らしく、ほとんどの場合うまくいきます。ただし、次のような状況では機能しません。
WordPress 内で AJAX を使用している場合、サイトのルートにいる場合でも$_SERVER['REQUEST_URI']
含まれます (たとえば、www.your-site.com にアクセスすると、そのルート ページで AJAX を使用している場合はが返されます)。wp-admin/admin-ajax.php
$_SERVER['REQUEST_URI']
wp-admin/admin-ajax.php
したがって、この問題を回避するには、条件インスペクションを次のように変更する必要があります。
if ( ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) || (strpos( $_SERVER['REQUEST_URI'], 'wp-admin/admin-ajax.php' ) !== false) ) :
define( 'WPLANG', 'nl_NL' );
else :
define( 'WPLANG', '' );
endif;
4.0 以降では、次を使用します。
if ( ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) || (strpos( $_SERVER['REQUEST_URI'], 'wp-admin/admin-ajax.php' ) !== false) ) :
$locale = 'nl_NL';
else :
$locale = 'en_US';
endif;