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

WPML自定义文章提交后未自动翻译问题求助

WPML自定义文章提交后未自动翻译问题求助

嘿,我碰到过类似的WPML自动翻译触发问题,你这种情况大概率是自定义表单提交时没有触发WPML需要的钩子或者动作,导致它没检测到新文章需要翻译。给你几个可行的解决思路:

  • 手动触发WPML的翻译同步动作
    当你的自定义表单完成文章创建后,手动调用WPML的相关函数或者核心动作来触发翻译。比如你用wp_insert_post创建文章后,可以加上这段代码:

    // $post_id 是刚创建的文章ID
    do_action('save_post', $post_id);
    
    // 或者调用WPML专用函数,兼容性更好
    if (function_exists('wpml_make_post_translatable')) {
        wpml_make_post_translatable($post_id);
    }
    

    加个function_exists判断是为了避免WPML未启用时出现报错。

  • 检查自定义表单的文章创建逻辑
    有些自定义表单可能直接操作数据库创建文章,或者用了非官方的创建方式,这会跳过WordPress核心的钩子触发。WPML是依赖这些核心钩子(比如save_post)来识别新内容的,所以一定要改用wp_insert_post这类官方函数来创建文章,确保钩子正常触发。

  • 验证WPML的自动翻译配置
    先去WPML后台确认下对应文章类型和分类的自动翻译是否开启:进入WPML → 设置 → 翻译选项,找到你的自定义文章类型,确保“自动翻译新内容”的选项已经勾选,同时目标语言的设置也正确。

  • 调试钩子触发状态
    可以临时加一段调试代码,确认表单提交时关键钩子是否触发:

    add_action('save_post', function($post_id) {
        error_log('Save post hook triggered for post ID: ' . $post_id);
    });
    

    提交表单后查看服务器的错误日志,如果没看到这条记录,说明你的文章创建流程确实没触发save_post,那手动触发它就成了关键。

这些方法应该能解决你的问题,我之前帮朋友处理过几乎一模一样的场景,手动触发save_post钩子就搞定了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:08:09