web-dev-qa-db-ja.com

ログインページのみの言語を変更する方法

私のワードプレスのブログはde_DEとして設定されています。これは私のログインページもde_DEに表示されることを意味します。

only ログインページをen_USにしたいです。

それで、 1ページの言語をプログラムで変更するにはどうすればよいですか。

:私はWPMLを持っていますが、使用したくありません。サイト全体の1ページだけを変更したいのです。

5
hitautodestruct

これはプラグインで行う必要があるでしょう。ただlogin-languge.phpの中のファイル(wp-content/plugins/)の中に以下を入れるだけです。

/*
Plugin Name:  Log-in Language
Plugin URI:   http://wordpress.stackexchange.com/questions/72692/how-do-i-change-the-language-of-only-the-login-page
Description:  Changes the language for log-in/register screens only
Author:       Stephen Harris
Author URI:   http://stephenharris.info
Version:      1.0
License:      GNU GPL 2
*/
add_action('plugins_loaded', 'wpse72696_login_language_init');

function wpse72696_login_language_init(){
    if( in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) ) ){
        add_filter('locale', 'wpse72692_login_language',10);
    }
}

function wpse72692_login_language( $locale ){
    return 'en_US';
}
3
Stephen Harris

このコード構造体によってあなたのwp-config.phpの中のdefine( 'WPLANG', 'de_DE');を再評価することができます。

if (basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)) == 'wp-login.php'){
    define( 'WPLANG',  'en_US');
} else {
    define( 'WPLANG',  'de_DE');
}
3
Butuzov

unload_textdomain($domain) を使ってあなたのfunctions.phpでこれをすることができるもう一つの方法

add_action('init', 'remove_login_translation');
function remove_login_translation() {
    if( in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) ) ) {
        unload_textdomain('default');
    }
}
1
Ahmad M