ACF 更新字段到嵌套转发器字段
Posted
技术标签:
【中文标题】ACF 更新字段到嵌套转发器字段【英文标题】:ACF Update Field into nested repeater field 【发布时间】:2014-07-07 08:35:13 【问题描述】:我试图让用户从前端发帖到嵌套的 ACF 转发器字段中。
我在第一个转发器中的子字段发布得很好。但是,我不太清楚如何让嵌套中继器正常工作。
这是我目前的代码:
$event_field_key = 'field_535e6b9ffe3da';
$events[] = array(
'start-date' => $startDate,
'end-date' => $endDate,
'notes' => $_POST['p'.$p.'-notes'],
'start-end-times' => array(
'start-time' => '09:00', // would be dynamic
'end-time' => '17:00' // would be dynamic
)
);
update_field($event_field_key, $events, $post_id);
我不确定是否可以在其中嵌套另一个 array
,或者是否需要做其他事情。
[更新]
我刚刚做了这个,它确实输入到了第一行:
$event_field_key = 'field_535e6b9ffe3da';
$events[] = array(
'start-date' => $startDate,
'end-date' => $endDate,
'notes' => $_POST['p'.$p.'-notes'],
'start-end-times' => array(
'start-time' => '9:00',
'end-time' => ' 17:00'
)
);
update_field($event_field_key, $events, $post_id);
但是,此代码将第 1 行的值作为 9
并将第 2 行的值作为 1
。
所以它看起来像:
Row 1: start time: 9, end time: 9
Row 2: start time: 1, end time: 1
我似乎找不到任何关于此的文档,但看起来有可能,只是弄清楚语法的一个例子。
【问题讨论】:
【参考方案1】:修复是一个数组数组:
$event_field_key = 'field_535e6b9ffe3da';
$events[] = array(
'start-date' => $startDate,
'end-date' => $endDate,
'notes' => $_POST['p'.$p.'-notes'],
'start-end-times' => array(
array(
'start-time' => '09:00',
'end-time' => '17:00'
),
array(
'start-time' => '10:00',
'end-time' => '16:00'
)
)
);
update_field($event_field_key, $events, $post_id);
【讨论】:
update_sub_field 不能正常工作,它没有注册或触发“父”字段已更新,因此它不会显示在管理中。 仅供参考:advancedcustomfields.com/resources/update_sub_field 现在有几种方法可以帮助更新嵌套字段 update_sub_field 就是其中之一。 这种更新方式破坏了保存字段的能力。然后有些字段无法保存。以上是关于ACF 更新字段到嵌套转发器字段的主要内容,如果未能解决你的问题,请参考以下文章
当同一转发器字段的值以其他语言更新时,ACF 转发器字段中的值是不是为空?