Wie füge ich programmgesteuert benutzerdefinierte Felder in ACF hinzu?

Lesezeit: 2 Minuten

Ich möchte programmgesteuert eine Registerkarte mit Repeater hinzufügen, aber ich kann anscheinend keine Lösung finden. Ich habe alle verfügbaren Ressourcen gegoogelt, funktioniert aber immer noch nicht.

Ich habe es bereits mit versucht acf_add_local_field_group und acf_add_local_field aber immer noch kein Glück.

Nun, ich kann eine Registerkarte mit acf_add_local_field erstellen, aber als ich versuchte, ein Kind hinzuzufügen, das in diesem Fall ein Repeater ODER sogar ein Textfeld ist, funktioniert es immer noch nicht.

Hier ist mein Code zum Erstellen einer Registerkarte und ihres untergeordneten Elements, aber das untergeordnete Element funktioniert nicht.

 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',
            )
        )
));

Du solltest benutzen acf_add_local_field_group um die ganze Feldgruppe zu konstruieren.

Hier ist der richtige Code zum Hinzufügen einer Gruppe und einer benutzerdefinierten Registerkarte mit einem einzelnen Repeater-Feld darin:

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;

  • in dem group_1 muss ich ein Namensattribut hinzufügen, um es durchlaufen zu können

    – leonardeveloper

    28. Oktober 2018 um 9:32 Uhr

  • Ich kann die Funktion have_rows () jedoch nicht im Frontend verwenden.

    – leonardeveloper

    28. Oktober 2018 um 10:28 Uhr

  • Das funktioniert bei mir nicht. Hat jemand ein funktionierendes Beispiel? Ich brauche die ACF-Gruppe, um auch im Backend angezeigt zu werden.

    – Flori

    7. Januar 2020 um 12:56 Uhr

1435220cookie-checkWie füge ich programmgesteuert benutzerdefinierte Felder in ACF hinzu?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy