Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress 4.0(及以上)-从前端(公共)动态更改语言区域设置_Php_Wordpress_Multilingual_Bbpress - Fatal编程技术网

Php WordPress 4.0(及以上)-从前端(公共)动态更改语言区域设置

Php WordPress 4.0(及以上)-从前端(公共)动态更改语言区域设置,php,wordpress,multilingual,bbpress,Php,Wordpress,Multilingual,Bbpress,很抱歉解释得太长了,但自从我从WordPress 3.8升级到WordPress 4.1以来,我一直在努力让客户的WordPress网站从英语转为韩语,反之亦然(从前端公共端) 据我所知,WordPress 4.0现在使用仪表板设置中的“语言选择器”来确定网站的全局显示语言,但是客户端需要网站根据访问者偏好而不是仪表板中的设置来切换语言。客户端只希望管理员级别的用户访问仪表板,这意味着所有其他(常规)用户都将被排除在自己的仪表板之外 我已经实现了一个简单的公共语言切换,它在WordPress 3

很抱歉解释得太长了,但自从我从WordPress 3.8升级到WordPress 4.1以来,我一直在努力让客户的WordPress网站从英语转为韩语,反之亦然(从前端公共端)

据我所知,WordPress 4.0现在使用仪表板设置中的“语言选择器”来确定网站的全局显示语言,但是客户端需要网站根据访问者偏好而不是仪表板中的设置来切换语言。客户端只希望管理员级别的用户访问仪表板,这意味着所有其他(常规)用户都将被排除在自己的仪表板之外

我已经实现了一个简单的公共语言切换,它在WordPress 3.8上运行得非常好,还有一个名为qTranslate的插件,看起来像这样(它们只是可以单击以更改语言的链接):

英语|한국어

自从升级到wp4.0以来,我不得不停止使用qTranslate(与wp4.0不兼容),并开始使用qtranslateplus()

但是现在WP4.0忽略了qTranslate Plus正在做的事情,特别是像BBPress这样的大插件

我在整个网站上多次使用一个方便的功能,它允许我确定用户当前选择的语言。URL也会相应地更改。例如:

英文版-example.com/

韩文版-example.com/KO/(如果用户点击上述韩文链接,则在域名后添加一个简单的“KO/”)

我用于确定用户当前启用的语言的函数如下所示:

$current_lang = ppqtrans_getLanguage(); // function is from qTranslate Plus
if ($current_lang == "KO") {
    // do what I need to do here in Korean  
} else if ($current_lang == "en") {
    // do what I need to do here in English 
}
上面的内容在定制页面上效果很好,但我也在使用BBPress和Event Espresso(一种事件注册软件和支付网关),它们在升级到WordPress 4.1后不再转换为韩语,我的客户现在对此感到愤怒

我尝试在theme的functions.php文件中使用类似的函数,但它似乎不起作用:

add_filter('locale', 'change_lang');
function change_lang( $locale ) {

    $current_lang = ppqtrans_getLanguage();

    if ($current_lang == "KO") {
        $locale = "ko_KR";

    } else if ($current_lang == "en") {
        $locale = "en_US";

    }

    return $locale;

}
对不起,如果上面看起来完全错了。我仍在努力掌握挂钩和过滤器的窍门

无论如何,如果有人对如何让像BBPress和Event Espresso这样的插件关注动态变化的区域设置有任何见解,那将是惊人的!即使是意大利浓缩咖啡活动的工作人员也不太了解如何让这项工作发挥作用。我只是不明白为什么看起来如此简单的事情却如此难以完成

非常感谢您抽出时间

TL;DR:我正在尝试根据URL的外观动态更改WordPress4.0语言环境。example.com/应将网站设置为英语。example.com/KO/应将站点设置为韩语-无需使用仪表板中语言选择器中的设置