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

求助:修正ACF代码实现仅当状态为complete时将字段设为null

问题解决:仅当文章状态为complete时清空指定字段

你的代码核心问题是条件判断误用了赋值运算符——你写的$value = 'complete'是赋值操作,不是比较操作。这会导致不管当前状态是什么,$value都会被强制设为'complete',条件永远为真,所以每次更新文章都会执行清空字段的逻辑。

修正后的代码如下:

add_action( 'acf/save_post', 'my_acf_save_post_7', 10 );
function my_acf_save_post_7( $post_id ) {
    $value = get_field( 'status', $post_id );
    // 用严格比较运算符 === 检查状态是否为'complete'
    if ( $value === 'complete' ) {
        update_field( 'project_address_1', null, $post_id );
    }
}

补充说明:

  • =是赋值符号,用于给变量赋值;==是松散比较(只对比值,不对比数据类型);===是严格比较(同时对比值和数据类型)。这里用===能避免因数据类型不一致导致的误判,保持代码严谨性。
  • 如果你的status字段返回的是字符串类型,用==也能正常工作,但优先推荐===。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:36:20