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

添加ACF新字段时触发现有wp_insert_post_data自定义函数报错问题

问题原因与修复方案

核心错误点

  • 数量限制逻辑未限定作用范围:你写的用户最多创建4篇note的判断条件,没有先校验当前正在插入的文章类型是不是note,ACF创建字段时本质是插入ACF专属的自定义文章类型记录,只要你的账号note数量已经到了上限,这个全局生效的wp_insert_post_data钩子就会直接拦截终止流程,触发报错。
  • 运算符书写错误:第三个条件判断中误用赋值运算符=替代了比较运算符==,会强制把所有非回收站的文章类型修改为note,进一步放大逻辑错误。

修复后代码

add_filter('wp_insert_post_data', 'makeNotePrivate', 10, 2);
function makeNotePrivate($data, $postarr)
{
  // 新增判断:仅在操作note类型文章时才触发数量限制
  if($data['post_type'] == 'note' && (count_user_posts(get_current_user_id(), 'note') > 4) && !$postarr['ID'])
  {
    die("You have reached your limit ");  
  }
  if($data['post_type'] == 'note')
  {
    $data['post_title'] = sanitize_text_field($data['post_title']);
    $data['post_content'] = sanitize_textarea_field($data['post_content']);
  }
  // 修复运算符错误,把=改成==
  if($data['post_type'] == 'note' && $data['post_status']!='trash')
  {
    $data['post_status'] = "private";
  }
  return $data;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:09:01