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

通过WP API更新WordPress ACF行字段值失败如何解决

问题根因

更新不生效是ACF中继器(Repeater,即你提到的rows行特性)的接口更新规则导致的:通过WP REST API修改中继器字段值时,不能只传递行内单个待修改的子字段,必须传递对应行全部子字段的键值对,缺项会导致ACF直接忽略整组中继器的更新请求。
你之前两次尝试都只传了星期字段field_611218a978d03,漏掉了同组的开始时间、结束时间两个子字段,所以只有顶层普通字段contact能正常修改,sched字段的更新被静默丢弃了。

正确传参方式

补全中继器行内的所有子字段即可正常更新,完整可运行代码如下:

$api_response = wp_remote_post( 'domain.com/wp-json/wp/v2/person/765', array(    
    'headers' => array(
        'Authorization' => 'Basic ' . base64_encode( 'user:pass' )
    ),
    'body' => array(
        'acf' => array (
            'contact' => '2151',
            // 中继器必须传入完整行结构,包含该行所有子字段的键值对
            'sched' => array(
                array(
                    "field_611218a978d03" => "Tuesday", // 待修改的星期值
                    "field_6112197d78d04" => "00:00:00", // 保留原有开始时间
                    "field_6112199f78d05" => "17:00:00"  // 保留原有结束时间
                )
            )
        ),
    )
));
$body = json_decode( $api_response['body'],true);
避坑提示
  • 若sched字段下有多行排班数据,必须把所有行的完整子字段集合全部传入,仅传部分行会直接删除未传入的原有行数据
  • 中继器子字段必须使用field_xxx格式的字段键作为键名,不能用你在ACF后台配置的字段别名(比如weekday、start这类自定义名称),否则不会被识别
  • 最稳妥的更新方式是先通过GET请求拉取该文章当前的完整ACF数据,在本地修改对应值后再整体提交,避免漏传字段导致原有数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:01:11