2

WordPress のテーマを英語以外の言語に設定したいのですが、WordPress のコントロール パネルは英語のままにしておきたいです。どうすればそれを達成できますか?

wp-config.phpを変更define('WPLANG', '');しても、コントロール パネルの言語も変更されるため、役に立ちません。

プラグインには興味がありません。必要なのはテーマの言語を設定することだけですが、コントロール パネルは設定しません。

ありがとう。

4

2 に答える 2

2

以下に例を示します。フロント エンドはオランダ語、バック エンドのデフォルトは英語です。

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 の回答も参照してください。

于 2013-05-07T17:43:22.763 に答える
0

「ディギー」による答えは素晴らしく、ほとんどの場合うまくいきます。ただし、次のような状況では機能しません。

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;
于 2014-03-01T07:48:36.353 に答える