You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:WordPress站点专属插件100%翻译却无法生效

排查WordPress站点专属插件翻译不生效的常见原因

嘿,我明白这种明明显示翻译完成但就是不生效的挫败感!咱们一步步拆解可能的问题,大部分情况都是些容易忽略的细节:

1. 文本域声明错了(最常见的坑)

你的主插件文件mysitecore.php里必须明确标注插件的文本域,而且要和翻译文件名的前缀完全一致(大小写也不能错)。

先检查主文件顶部的插件注释里有没有这段:

/*
Plugin Name: My Site Core
Text Domain: mysitecore
Domain Path: /mysitecore/languages/
*/

重点注意:

  • Text Domain必须和你的翻译文件名前缀(mysitecore-hu_HU.po里的mysitecore)完全匹配;
  • Domain Path是关键!你的主文件在plugins/根目录,翻译文件在plugins/mysitecore/languages/,所以相对路径得写/mysitecore/languages/,如果之前写的是/languages/,WordPress会去plugins/languages/找文件,自然找不到你的翻译!

另外,注册自定义文章类型时,所有要翻译的字符串(比如名称、描述)都得用__()或_e()函数,并指定文本域:

register_post_type( 'my_custom_post', array(
    'labels' => array(
        'name' => __( 'My Custom Posts', 'mysitecore' ),
        'singular_name' => __( 'My Custom Post', 'mysitecore' ),
    ),
    // 其他参数...
) );

要是这里没加文本域,WordPress会用默认的default文本域,根本不会调用你的翻译文件。

2. MO文件有问题或者权限不足

虽然你导出了.mo文件,但可能生成不完整,或者服务器读不到它:

  • 打开PoEdit,重新从.po文件导出一次.mo,确保编码是UTF-8;
  • 检查服务器上languages目录和.mo文件的权限,一般目录设为755,文件设为644,保证WordPress能读取。

3. 站点语言设置不匹配

去WordPress后台的设置→常规→站点语言,确认是不是选的「匈牙利语(Hungarian)」(对应hu_HU)。如果站点语言和翻译文件的locale不匹配,翻译肯定不会生效。

4. Loco Translate的缓存或同步问题

有时候Loco显示100%完成,但实际没同步到生成的.mo文件:

  • 打开Loco Translate找到你的插件,点击「同步」按钮,确保所有需要翻译的字符串都被抓取到;
  • 重新生成.mo文件,或者手动替换服务器上的.mo;
  • 清一下WordPress的缓存(如果用了缓存插件的话),旧缓存会挡住新翻译的生效。

5. 自定义文章类型注册时机不对

要是你注册自定义文章类型的代码执行得太早,在翻译文件加载之前就运行了,字符串自然没法被翻译。确保代码挂在init钩子上:

add_action( 'init', 'register_my_custom_post_type' );
function register_my_custom_post_type() {
    // 这里写注册自定义文章类型的代码
}

这样能保证翻译文件已经加载完成,再注册类型,字符串才能被正确翻译。

先排查这些点,大概率能解决问题。如果还是不行,可以打开WordPress的调试模式,看看有没有相关错误提示,能帮你更快定位。

内容的提问来源于stack exchange,提问作者Feralheart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:42:10