我想将WordPress主题设置为英语以外的语言,但我希望将WordPress的控制面板保留为英语。我该如何做到这一点?
更改 wp-config.php 中的define('WPLANG', '');
无济于事,因为它也会更改控制面板的语言。
我对插件不感兴趣,我只需要设置主题的语言,而不是控制面板。
感谢。
答案 0 :(得分:2)
这是一个例子,前端将是荷兰语,后端默认为英语:
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) === false ) :
define( 'WPLANG', 'nl_NL' );
else :
define( 'WPLANG', '' );
endif;
WordPress 4.0弃用了WPLANG
常量(link)。网站语言是从管理面板设置的:设置 - >一般 - >网站语言。
开发人员现在可以通过在$locale
中定义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的答案。
答案 1 :(得分:0)
' diggy'是伟大的,大部分时间都在工作。但是在一种情况下它不起作用:
如果您在WordPress中使用AJAX,那么$_SERVER['REQUEST_URI']
即使您在站点根目录也会包含wp-admin/admin-ajax.php
(例如,如果您访问www.your-site.com,那么{{}如果您在该根页面中使用AJAX,则会返回$_SERVER['REQUEST_URI']
。
因此,要解决此问题,您应该将条件检查修改为如下:
wp-admin/admin-ajax.php
对于4.0及更高版本,请使用以下
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;