Zutaten
- WordPress
- ACF (Advanced Custom Fields)
- Dynamic Shortcodes (von Dynamic.ooo)
- Ein bisschen Logik
Ausgangslage
Man möchte Termine aus einem ACF-Feld ausgeben. Am besten dynamisch und nur dann, wenn auch wirklich Inhalte vorhanden sind. Außerdem soll bei einer bestimmten Kategorie-ID noch eine Zusatzinfo wie die Uhrzeit angezeigt werden.
Problem
Dynamic Shortcodes sind mächtig – aber wenn man sie falsch verschachtelt, bekommt man entweder gar nichts oder unnötige Leerstellen.
Lösung
Mit folgendem Code prüfst du zunächst, ob überhaupt Termine existieren und gibst sie dann sauber als Liste aus. Für eine bestimmte Kategorie-ID wird außerdem eine Zeitangabe ergänzt:
{set:hasElements false}
{for:value {acf:termin} [
{set:hasElements true}
]}
{if:{get:hasElements} [
<ol>
{for:value {acf:termin} [
{if:{get:value} [
<li><strong>Modul: </strong>{date:{get:value}@format='D, d.m.Y'}</li>
] ''}
]}
{if:{eq:{get:catId} 41} [
<span>jeweils 10:30 - 17:30 Uhr</span>
] ''}
</ol>
] ''}
Funktioniert sauber und gibt dir nur dann Inhalte aus, wenn auch wirklich etwas da ist. Die Logik {set:hasElements} verhindert leere Container – und mit {if:{eq:{get:catId} 41}} kannst du gezielt Zusatzinfos für eine Kategorie ausspielen.
Viel Spaß beim Nachbauen!
Quelle: Dynamic Shortcodes Hilfe
