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.