WordPress用其他语言

时间:2013-05-07 17:39:06

标签: wordpress installation multilingual

我想将WordPress主题设置为英语以外的语言,但我希望将WordPress的控制面板保留为英语。我该如何做到这一点?

更改 wp-config.php 中的define('WPLANG', '');无济于事,因为它也会更改控制面板的语言。

我对插件不感兴趣,我只需要设置主题的语言,而不是控制面板。

感谢。

2 个答案:

答案 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;
相关问题