ACF以编程方式添加转发器

时间:2016-03-03 18:32:32

标签: wordpress repeater advanced-custom-fields

我正在使用Advanced Custom Fields(ACF)并尝试以编程方式将转发器添加到现有组(group_5621b0871e1b1),但它不起作用。相同的代码适用于文本字段,但不适用于转发器。

在我的插件中

driver.find_element_by_id("")

它在group_5621b0871e1b1组中显示此错误:

add_action( 'acf/init', 'acf_add_field_royalties' );
function acf_add_field_royalties() {
    if ( function_exists( 'acf_add_local_field_group' ) ) {
        acf_add_local_field( array (
            'key' => 'field_store_royalties',
            'label' => 'Royalties',
            'name' => 'store_royalties1',
            'type' => 'repeater',
            'parent'       => 'group_5621b0871e1b1',
            'instructions' => '',
            'required' => 0,
            'conditional_logic' => 0,
            'wrapper' => array (
                'width' => '',
                'class' => '',
                'id' => '',
            ),
            'collapsed' => '',
            'min' => '',
            'max' => '',
            'layout' => 'table',
            'button_label' => 'Add new royalty period',
            'sub_fields' => array (
                array (
                    'key' => 'field_start_date',
                    'label' => 'Start Date',
                    'name' => 'start_date1',
                    'type' => 'date_picker',
                    'instructions' => '',
                    'required' => 1,
                    'display_format' => 'F j, Y',
                    'return_format' => 'd/m/Y',
                    'first_day' => 1,
                ),
                array (
                    'key' => 'field_end_date',
                    'label' => 'End date',
                    'name' => 'end_date1',
                    'type' => 'date_picker',
                    'instructions' => '',
                    'display_format' => 'F j, Y',
                    'return_format' => 'd/m/Y',
                    'first_day' => 1,
                ),
                array (
                    'key' => 'field_royalty_rate',
                    'label' => 'Royalty Rate',
                    'name' => 'royalty_rate1',
                    'type' => 'number',
                    'instructions' => '',
                    'required' => 1,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'default_value' => 0,
                    'placeholder' => '',
                    'prepend' => '',
                    'append' => '%',
                    'min' => 0,
                    'max' => 100,
                    'step' => 1,
                    'readonly' => 0,
                    'disabled' => 0,
                )
            )
        ));
    }
}

我做错了吗? 是否可以通过编程方式添加转发器。

1 个答案:

答案 0 :(得分:3)

由于使用Error添加了转发器字段,因此每个子字段也需要添加acf_add_local_field

  • 删除所有子字段,包括acf_add_local_field 来自转发器领域的线路。
  • 在新的'subfields' => array
  • 中添加每个子字段
  • 添加子字段时,请务必将acf_add_local_field添加到子字段。

您的代码现在看起来像:

'parent' => 'repeater_field_key'