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

如何阻止自定义文章以‘Auto Draft’为标题保存?

解决自定义文章以「Auto Draft」为标题保存的问题

你的代码无效的核心原因是:post_title 不是自定义字段,它是WordPress wp_posts 数据表的原生字段,不能用 update_post_meta() 来修改——这个函数只负责操作wp_postmeta表中的自定义元数据,所以你的代码根本没触碰到文章标题的实际存储位置。

下面是两种针对性的解决方案,覆盖「手动保存文章」和「自动草稿生成」两种场景:

方案1:保存文章时强制替换标题

用 save_post 钩子在文章保存时直接更新标题,同时避免无限循环问题:

add_action('save_post', 'custom_set_book_post_title', 10, 3);
function custom_set_book_post_title($post_id, $post, $update) {
    // 跳过自动保存、修订版,只处理目标自定义文章类型(替换成你的文章类型slug,比如'book')
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (wp_is_post_revision($post_id)) return;
    if ($post->post_type !== 'book') return;

    // 验证用户编辑权限
    if (!current_user_can('edit_post', $post_id)) return;

    // 当Book_Title字段有值时更新标题
    if (isset($_POST['Book_Title']) && trim($_POST['Book_Title']) !== '') {
        $clean_title = sanitize_text_field($_POST['Book_Title']);
        
        // 临时移除钩子,避免wp_update_post触发save_post导致无限循环
        remove_action('save_post', 'custom_set_book_post_title', 10);
        
        // 直接更新文章标题
        wp_update_post([
            'ID' => $post_id,
            'post_title' => $clean_title
        ]);
        
        // 重新添加钩子
        add_action('save_post', 'custom_set_book_post_title', 10, 3);
    }
}

方案2:提前修改自动草稿的标题

如果要阻止刚创建自定义文章时生成「Auto Draft」标题,可以用 wp_insert_post_data 钩子,在文章写入数据库前直接替换标题:

add_filter('wp_insert_post_data', 'custom_replace_auto_draft_title', 10, 2);
function custom_replace_auto_draft_title($post_data, $post_arr) {
    // 只处理目标自定义文章类型的自动草稿
    if ($post_data['post_type'] !== 'book' || $post_data['post_status'] !== 'auto-draft') {
        return $post_data;
    }

    // 当Book_Title有值时替换自动草稿标题
    if (isset($post_arr['Book_Title']) && trim($post_arr['Book_Title']) !== '') {
        $post_data['post_title'] = sanitize_text_field($post_arr['Book_Title']);
    }

    return $post_data;
}

注意事项

  • 把代码中的 'book' 替换成你实际使用的自定义文章类型的slug
  • 确保你的自定义字段Book_Title的表单name属性确实是Book_Title,否则无法获取到值
  • 两个方案可以同时使用,覆盖所有场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:06:24