web-dev-qa-db-ja.com

WPLANG変数が英語でなくてもYoast SEOバックエンドを英語で使用する方法?

このコードをfunctions.phpファイルに追加しました

add_filter('locale', 'wpse27056_setLocale');
function wpse27056_setLocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }

    return $locale;
}

そのため、フロントエンドはro_ROで利用でき、wp-adminen_USで利用できます。

さて...それはルーマニア語に翻訳されているYoastのWordPress SEOプラグインを除いてほとんどうまくいきました。

そのプラグインを英語で表示するにはどうすればいいですか?

2
m3tsys

そのプラグインは、メインファイルがインクルードされた瞬間にその言語をロードします。

load_plugin_textdomain( 'wordpress-seo', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );

それであなたのlocaleフィルタが使われるとき、言語はすでにそこにあります。 :/

小さなプラグインをmu-pluginsディレクトリに移動します。 wp-contentに存在しない場合は作成できます。それはYoastよりも早くあなたのプラグインをロードするはずです。

レッスン:wp_loadedの前に自分の言語ファイルをロードしないでください

2
fuxia

もっと良い解決策があります。 plugin_locale というフィルタです。 load_plugin_textdomainで使用する前にロケール引数をフィルタリングします。

add_filter( 'plugin_locale', 'mytheme_plugin_locale' );

function mytheme_plugin_locale() {
    return 'en_US';
}
2
Alex Hackbunker