ACF更新字段到嵌套的转发器字段

时间:2014-05-19 11:40:05

标签: php wordpress advanced-custom-fields

我试图让用户从前端发布到嵌套的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,或者我是否需要做其他事情。

[UPDATE]

我刚刚完成了这项工作并输入了第一行:

$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 个答案:

答案 0 :(得分:5)

修复程序是一个数组数组:

$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);