如何以编程方式在ACF中添加自定义字段?

时间:2018-10-26 17:16:38

标签: wordpress advanced-custom-fields

我想以编程方式在其中添加带有中继器的选项卡,但似乎找不到解决方案,我已经搜索了所有可用资源,但仍无法正常工作。

我已经尝试使用 acf_add_local_field_group acf_add_local_field ,但还是没有运气。

好吧,我可以使用acf_add_local_field创建一个标签,但是当我尝试添加一个子节点时,该子节点在这种情况下仍然是重复器,甚至是文本字段,都仍然无效。

这是我的代码,用于创建标签页及其子项,但该子项不起作用。

 acf_add_local_field(array(
'key' => 'field_1',
'label' => 'Sub Title',
'name' => 'sub_title',
'type' => '',
'parent' => 'field_5bd14c9349930',
'fields' => array (
    array(
            'key' => 'field_2',
            'label' => 'This is a test',
            'name' => 'my_test',
            'type' => 'text',
            )
        )
));

1 个答案:

答案 0 :(得分:0)

您应该使用acf_add_local_field_group来构造整个字段组。

下面是添加一个组和一个带有单个转发器字段的自定义标签的正确代码:

if( function_exists('acf_add_local_field_group') ):

acf_add_local_field_group(array (
    'key' => 'group_1',
    'title' => 'My Group',
    'fields' => array (
        array (
            'key' => 'field_unique_key',
            'label' => 'First Tab', 
            'name' => '',
            'type' => 'tab',
            'instructions' => '',
            'required' => 0,
            'conditional_logic' => 0,
            'wrapper' => array (
                'width' => '',
                'class' => '',
                'id' => '',
            ),
            'placement' => 'top',
            'endpoint' => 0,
        ),
        array (
            'key' => 'field_unique_key',
            'label' => 'Simple Repeater',
            'name' => 'simple_repeater',
            'type' => 'repeater',
            'instructions' => '',
            'required' => 0,
            'conditional_logic' => 0,
            'wrapper' => array (
                'width' => '',
                'class' => '',
                'id' => '',
            ),
            'collapsed' => '',
            'min' => 0,
            'max' => 10,
            'layout' => 'table',
            'button_label' => 'Add row',
            'sub_fields' => array ( // Here you can add as many subfields for this repeater as you want
                array (
                    'key' => 'field_unique_key',
                    'label' => 'Link',
                    'name' => 'link',
                    'type' => 'link', // example link type
                    'instructions' => 'Link name and URL',
                    'required' => 0,
                    'conditional_logic' => 0,
                    'wrapper' => array (
                        'width' => '',
                        'class' => '',
                        'id' => '',
                    ),
                    'return_format' => 'array',
                ),
            ),
        ),
    ),
    'location' => array (
        array (
            array (
                'param' => 'post_type',
                'operator' => '==',
                'value' => 'post',
            ),
        ),
    ),
    'menu_order' => 0,
    'position' => 'normal',
    'style' => 'default',
    'label_placement' => 'top',
    'instruction_placement' => 'label',
    'hide_on_screen' => '',
));

endif;