只是对 Angelie Macalansag 答案的一些补充,这很好。
这是针对
可悲的是 $field_key 是个问题。它是您可以在自定义字段列列表中的 wordpress 管理中找到的键,但您必须单击屏幕顶部的“屏幕选项”,然后选中“显示字段键”。这个键看起来像“field_5c7d3d0cbcbd1”,我们的转发器字段名称看起来像“orders”。
update_field( 'orders', $value, $user_id );
仅当您在管理中手动将至少一条记录添加到转发器字段时才能正常工作。如果您尝试使用 php 插入空转发器字段,则该帖子的管理页面将因超时错误而崩溃。
update_field( 'field_5c7d3d0cbcbd1', $value, $user_id );
即使中继器仍然是空的,也可以实际工作。
当您有多个 wordpress 实例(或本地主机版本)并在管理中创建表时,这会带来问题。因为它们每个都有不同的键。
我无法找到一种根据临时列名获取键值的工作方式。我能找到的唯一解决方案是在数据库中搜索新创建的密钥,并在所有地方(其中 7 个)将其覆盖为我在 localhost 上生成的值,因此相同的代码可以在多个项目上运行。
这仅适用于中继器,对于 非中继器 acf 字段我使用此功能没有问题:
function acf_updateValue($fieldname, $value, $post_id){
$field_key = 'field_' . uniqid();
update_post_meta($post_id, $fieldname, $value);
update_post_meta($post_id, '_'.$fieldname, $field_key);
update_field($field_key, $value, $post_id);
}
用于例如 -
acf_updateValue('orderFinished', true, $post_id)