問題描述
對於單個站點 wordpress,該語言必須從 wp-config.php 的 WPLANG 設置,但是可以從我的插件設置覆蓋默認值嗎?
最佳解決方案
在 wp-includes/l10n.php 中,您可以找到 get_locale()的功能。它提供一個過濾器; 你可以設置語言並忽略常量:
function get_locale() {
global $locale;
if ( isset( $locale ) )
return apply_filters( 'locale', $locale );
// WPLANG is defined in wp-config.
if ( defined( 'WPLANG' ) )
$locale = WPLANG;
// If multisite, check options.
if ( is_multisite() ) {
// Don't check blog option when installing.
if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
$ms_locale = get_site_option('WPLANG');
if ( $ms_locale !== false )
$locale = $ms_locale;
}
if ( empty( $locale ) )
$locale = 'en_US';
return apply_filters( 'locale', $locale );
}
要使用插件更改它,請使用過濾器'locale'。例:
add_filter( 'locale', 'wpse_52419_change_language' );
function wpse_52419_change_language( $locale )
{
return 'de_DE';
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。