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 转发器字段中的值是不是为空?

Wordpress ACF:如何通过自定义代码(PHP)将行添加到附加到用户的转发器字段

从所有帖子中获取 ACF 转发器字段值,按子字段排序

如果第一个 ACF 中继器字段为空,则打印内容

从 ACF 转发器字段中获取 meta_key

ACF 转发器按日期子字段排序