Wiki

für WordPress-Entwickler

Anleitungen, Snippets und mehr…

ACF Gruppe in Gruppe ausgeben – So geht’s richtig

Lesezeit: ca. 3 Minuten

Warum ACF Gruppen in Gruppen nutzen?

Das Advanced Custom Fields (ACF) Plugin ermöglicht es, Inhalte in WordPress strukturiert zu verwalten. Eine besondere Herausforderung besteht darin, eine ACF Gruppe innerhalb einer anderen ACF Gruppe auszugeben. In diesem Beitrag erklären wir, wie das funktioniert, worauf du achten musst und welche Unterschiede es zwischen ACF-Gruppen und Repeater-Feldern gibt.

1. ACF Gruppe in einer Gruppe ausgeben

Wenn du eine Gruppe als Untergruppe innerhalb einer anderen Gruppe angelegt hast, dann kannst du darauf wie folgt zugreifen:

Beispiel-Feldstruktur:

Hauptgruppe: main_group

Textfeld: headline

Untergruppe: sub_group

Textfeld: sub_headline

Bild: sub_image

Code zur Ausgabe:

$main_group = get_field('main_group');

if ($main_group) {
    echo '<h2>' . esc_html($main_group['headline']) . '</h2>';

    if (!empty($main_group['sub_group'])) {
        echo '<h3>' . esc_html($main_group['sub_group']['sub_headline']) . '</h3>';
        echo wp_get_attachment_image($main_group['sub_group']['sub_image'], 'medium');
    }
}

Erklärung: ACF-Gruppen werden als assoziative Arrays zurückgegeben. Deshalb greifst du mit $group['feldname'] auf die Daten zu.

2. ACF Repeater innerhalb einer Gruppe ausgeben

Eine Alternative zur ACF-Gruppe ist ein Repeater-Feld, das eine flexible Anzahl von Datensätzen enthält. Falls eine Gruppe ein Repeater-Feld enthält, musst du eine foreach-Schleife nutzen.

Beispiel-Feldstruktur:

Hauptgruppe: main_group

Repeater: repeater_field

Text: repeater_text

Bild: repeater_image

Code zur Ausgabe:

$main_group = get_field('main_group');

if ($main_group && !empty($main_group['repeater_field'])) {
    foreach ($main_group['repeater_field'] as $row) {
        echo '<p>' . esc_html($row['repeater_text']) . '</p>';
        echo wp_get_attachment_image($row['repeater_image'], 'medium');
    }
}

Hinweis: Ein Repeater-Feld enthält mehrere Einträge, die als Array gespeichert werden. Deshalb nutzt du eine foreach-Schleife.

3. ACF Gruppe vs. ACF Repeater – Was ist der Unterschied?

Merkmal ACF Gruppe ACF Repeater
Struktur Hierarchisch (verschachtelte Felder) Mehrere gleichartige Einträge
Anzahl der Elemente Fest definiert Flexibel, beliebig viele Einträge
Datenformat Assoziatives Array Indexiertes Array
Abrufmethode $gruppe['feldname'] foreach ($repeater as $row)
Einsatzgebiete Strukturiert angelegte Inhalte (z. B. eine Adresse mit Straße, PLZ, Stadt) Wiederholende Elemente (z. B. eine Liste von Testimonials)

Wann solltest du welche Methode verwenden?

Nutze ACF Gruppen, wenn die Inhalte logisch zusammengehören und eine feste Struktur haben.
Verwende Repeater-Felder, wenn die Anzahl der Einträge variabel ist und sich erweitern lassen soll.

Fazit

Die Entscheidung zwischen ACF-Gruppen und Repeater-Feldern hängt von der Art der Daten ab. Während Gruppen eine feste Struktur haben, ermöglichen Repeater-Felder eine flexible Wiederholung von Einträgen. Mit den obigen Code-Beispielen kannst du ACF-Gruppen korrekt verschachteln und ausgeben.