私のワードプレスのブログはde_DE
として設定されています。これは私のログインページもde_DE
に表示されることを意味します。
only ログインページをen_US
にしたいです。
それで、 1ページの言語をプログラムで変更するにはどうすればよいですか。
注 :私はWPMLを持っていますが、使用したくありません。サイト全体の1ページだけを変更したいのです。
これはプラグインで行う必要があるでしょう。ただ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';
}
このコード構造体によってあなたの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');
}
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');
}
}