WordPress指定页面语言从en-US改为ar的代码失效问题
WordPress 指定页面切换语言的代码修复方案
原代码的问题分析
WPLANG是WordPress 4.0之前的旧常量,现已被弃用,不能再用它来设置语言。define('WPLANG', 'en-US', 'myfunction')语法错误,define的第三个参数是布尔值(是否允许重新定义常量),不是回调函数。- 自定义函数
myfunction没有通过WordPress的钩子触发,系统不会自动执行这个函数。 is_page需要在页面初始化完成后调用,原代码的执行时机过早,无法正确识别当前页面。- 用
echo输出调试内容会破坏页面HTML结构,不建议这么做。
修复后的代码
将以下代码添加到主题的 functions.php 文件或自定义插件中:
add_action('wp', function() { // 匹配目标页面的slug if (is_page(array('test', 'partners', 'management'))) { add_filter('locale', function() { return 'ar'; // 切换为阿拉伯语 }); } });
注意事项
- 确保WordPress已安装阿拉伯语语言包:可在后台「设置-常规-站点语言」中安装,或手动将语言文件上传到
wp-content/languages目录。 - 若要调整目标页面,修改
is_page数组内的内容即可,支持页面slug、ID或标题。
内容的提问来源于stack exchange,提问作者Dark47
相关产品推荐
相关产品推荐

