我想将 WordPress 主题设置为英语以外的语言,但我想保持 WordPress 的控制面板为英语。我该如何做到这一点?
更改wp-config.php将无济于事,因为它也会更改控制面板的语言define('WPLANG', '');
。
我对插件不感兴趣,我只需要设置主题的语言,而不是控制面板。
谢谢。
我想将 WordPress 主题设置为英语以外的语言,但我想保持 WordPress 的控制面板为英语。我该如何做到这一点?
更改wp-config.php将无济于事,因为它也会更改控制面板的语言define('WPLANG', '');
。
我对插件不感兴趣,我只需要设置主题的语言,而不是控制面板。
谢谢。
这是一个示例,前端将是荷兰语,后端默认为英语:
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) :
define( 'WPLANG', 'nl_NL' );
else :
define( 'WPLANG', '' );
endif;
WordPress 4.0 弃用了WPLANG
常量(链接)。站点语言是从管理面板设置的:Settings -> General -> Site Language。
开发人员现在可以通过定义$locale
全局 in来修改语言环境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';
}
另请参阅 Greeso 关于管理员 AJAX 的回答。
“diggy”的答案很棒,而且大部分时间都有效。但是,它在一种情况下不起作用:
如果您在 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;