我找到了这个代码,它应该更新ACF Wordpress中的中继器字段。我的中继器有三列。我只需要更新中继器中某一栏中的某个字段。如何使用此代码执行此操作:
// save a repeater field value
$field_key = "field_3424324234";
$value = array(
array(
"sub_field_1" => "Foo",
"sub_field_2" => "Bar"
)
);
update_field( $field_key, $value, $post_id );
我需要说,我没有专业许可证,我不能使用update_sub_field()。
发布于 2016-07-06 08:24:38
我会回答下面的问题。我使用了一个与update_field稍有不同的函数,名为update_sub_field。为此,您需要有ACF 5+。若迪·内博特的回答对我有所帮助,但在我的例子中,我需要添加一些额外的变量($post_id
)。所以在这里,希望能帮助某人:
update_sub_field( array("repeater_field_key", $row+1, "repeater_sub_field_key"), $new_value, $post_id);
我添加了$row+1
,因为$row
数字计数从1
开始,当$row
启动位置在循环中继器时从0
开始。希望这有意义。
发布于 2016-07-05 10:23:18
如果要更新Repeater中的子字段,则应该使用update_sub_field
而不是update_field
。
我假设(根据您的代码片段)您没有使用have_rows
迭代中继器,所以假设您想更新第三行中的sub_field_2
,它应该如下所示:
$subfield = 'sub_field_2';
$row = 3;
$new_value = 'The new value of the field';
update_sub_field( array( $field_key, $row, $sub_field ), $new_value, $post_id );
编辑:,我错过了答案中的$post_id
参数。谢谢你@匿名让我注意到这一点。
我希望这能帮到你!
https://stackoverflow.com/questions/38200095
复制相似问题