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

WordPress如何自动将自定义文章类型的标题添加为文章标签

实现方案

你需要对现有代码做几处调整,核心是把固定标签替换为动态获取的文章标题,同时补充边界条件判断避免异常触发:

修改后的完整代码

function set_archive_tag_on_publish($post_id, $post) {
    // 跳过自动保存场景
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    // 跳过后台修订版本
    if (wp_is_post_revision($post_id)) {
        return;
    }
    // 仅对已发布的movies自定义文章类型生效
    if ($post->post_type == 'movies' && $post->post_status == 'publish') {
        // 移除当前钩子,避免调用wp_set_post_tags时触发死循环
        remove_action('save_post', 'set_archive_tag_on_publish');
        // 将文章标题作为标签添加,第三个参数为true表示追加标签、不覆盖原有标签
        wp_set_post_tags($post_id, $post->post_title, true);
        // 重新挂载钩子
        add_action('save_post', 'set_archive_tag_on_publish');
    }
}
add_action('save_post', 'set_archive_tag_on_publish');

核心修改点说明

  • 替换了wp_set_post_tags函数的第二个参数,从固定的'tag1, tag2, tag3'改为动态获取的文章标题属性$post->post_title
  • 新增了自动保存、修订版本的判断逻辑,避免误触发标签添加
  • 新增了钩子临时移除/重新挂载的逻辑,避免调用标签更新接口时触发save_post钩子导致死循环
  • 如果需要仅保留文章标题作为唯一标签、删除原有其他标签,可以将wp_set_post_tags的第三个参数改为false

内容的提问来源于stack exchange,提问作者The Real Truth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:54:00