Home » Dynamische Inhalte in WP mit Dynamic Shortcodes
tl;dr: Das kostenpflichtige Plugin Dynamic Shortcodes erlaubt den Zugriff und die Ausgabe aller Inhalte deiner WordPress-Datenbank. Damit kannst du die Inhalte deiner Webseite individueller und benutzerorientierter präsentieren. Das funktioniert mit Blockthemes, Elementor, Breakdance aber auch mit dem Classic-Editor. Und natürlich mit ACF-Feldern, Toolset, Pods; aber auch mit Woo und WPML.
Das kann ein Einstieg in die Welt der WordPress-Programmierung sein oder auch nur ein schneller Weg bestimmte Dinge anzuzeigen, ein mächtiges Tool!
[Der Artikel enthält Affiliate-Links, wurde aber weder beauftragt noch in irgend einer Weise bezahlt]
Dynamic Shortcodes ist ein kostenpflichtiges Plugin, eine logische Weiterentwicklung des genialen Token-Systems von Dynamic Content for Elementor. Aktuelle Preise:
Die Preisgestaltung verrät die Zielgruppe: dieses Tool ist für Webdesigner und Agenturen gedacht, und da gehört es auch hin. Denn obwohl es ± ohne Coding auskommt, so verlangt es doch ausreichend Sorgfalt in der Anwendung und Verständnis für WordPress und dessen Aufbau.
Wie funktioniert das nun? Die Idee ist, dass man die Daten, die in der Datenbank gespeichert sind, überall ansprechen und ausgeben kann.
Beispiel: Um den Titel eines Beitrags anzuzeigen (zB. in einem Archiv oder einem Template für eine Einzelseite) gibt es den Block Titel und das Elementor Widget Seiten Titel. Beide machen das gleiche: sie holen aus der Datenbank den Seitentitel und zeigen ihn an. Das selbe kann man auch mithilfe eines Dynamic Shortcodes tun:
{post:title}
gibt ebenfalls den Titel des Beitrags aus. Diesen Shortcode kann ich nun überall anwenden, wo eine Texteingabe möglich ist: Innerhalb eines Texteditors im Classic-Editor genauso wie im Blockeditor wo Texteingaben möglich sind oder auch mit Elementor im Text oder über die dynamischen Inhalte.
Damit haben wir die Arbeitsweise schon einmal grundsätzlich verstanden. Es ist jetzt nur mehr ein kleiner Schritt zu verstehen, dass man mit zB.
Willkommen, {user:nickname}!
Eine persönliche Begrüßung eines eingeloggten Users ausgeben kann. Natürlich haben diese Shortcodes eine genaue Syntax, diese wird hier beschrieben.
Jetzt ist es natürlich möglich die Syntax zu erlernen und daraus mögliche Shortcodes zu erahnen, besser und deutlich einfacher ist es jedoch, das Backend des Plugins zu verwenden wo die möglichen Anwendungen inkl. Beispielen und Kopier-Möglichkeit angezeigt werden.
In unserem ersten Beispiel finden wir unter
Dashboard > Dynamic Shortcodes > Demo Shortcodes | Post
die sinnvoll möglichen Kombinationen, um die Inhalte eines Beitrags über einen Shortcode auszugeben:
Diese Demo Shortcodes-Seite ist sehr gut aufgebaut. Neben der Auflistung der einzelnen Codes sind immer eine Kopier-Funktion und eine Beispielausgabe untergebracht. Bei machen Ausgaben gibt es auch die Möglichkeit über den Button Expand Examples erweiterte Beispiele angezeigt zu bekommen.
Wie man anhand des date-Beispiels sehen kann, sind komplexe Ausgabemanipulationen möglich:
{date:{post:date} "-2 days" @ format="d/m/Y H:i:s"}
Wir sehen hier, dass eine Verschachtelung erfolgt ist: das post:date ist Teil des date, dass eine Operation durchgeführt wurde -2 days und das Ergebnis nach eigenen Wünschen formatiert wurde format=“d/m/Y H:i:s.
Übersetzt würde das wohl bedeuten: ”Gib ein Datum in einem bestimmten Format aus, das 2 Tage vor dem Erstellungsdatum des Beitrags lag.“
Man sieht also recht schnell: da geht einiges. Es gibt Shortcodes zu folgenden Bereichen, wenn eine Erweiterung nicht vorhanden ist, werden die Beispiele ausgeblendet:
Das nächste Beispiel zeigt uns die Anwendung eines Filters. Dieser wird durch eine Pipe | oder || oder |- in den Shortcode eingefügt. Genauere Erklärung hier.
Beispiel:
Wir verkürzen die Ausgabe des Posttitels eines Beitrags, der Shortcode hierfür lautet
{post:title | substr(0,7)}
Und weil das im Blockeditor einfach in einen Absatz geschrieben wird kann hier auch eine Formatierung erfolgen, im Beispiel B und I:
Filter erlauben also die Manipulation des Outputs des Shortcodes um das zu bekommen, was man eben benötigt. Und ja, eigentlich sind es 8 Zeichen :-).
Das klingt jetzt schon mal recht nett, allerdings stossen wir bald auf Grenzen: es gibt 2 Situationen, wo wir mit dem bisher beschriebenen Ansatz nicht weiter kommen:
Wer die Beispiele der Demo Shortcodes ansieht wird recht oft auf diesen Zusatz stossen:
Only inside Power Shortcodes
Was sind nun Power Shortcodes? Das sind Anweisungen, die einen oder mehrere Shortcodes in eine Funktion verwandeln, die dann wiederum mit einem Shortcode aufgerufen wird.
Beispiel:
Aus Sicherheitsgründen (und das ist auch gut so!) verweigert WordPress die einfache Ausgabe von Login und E-Mail des eingeloggten Users. Über einen Power-Shortcode ist es jedoch möglich, dieses Daten anzuzeigen:
Der PowerShortcode hierzu lautet:
E-Mail: {user:email}, Login: {user:login}
Verpackt wird das ganze in einen Shortcode der dann zB. so aussehen kann:
{power:user-info}
Um das umzusetzen gibt es einen Bereich
Dashboard > Dynamic Shortcodes > Power Shortcodes
wo man solche Shortcodes definieren kann. Im obigen Beispiel sieht das dann so aus:
Im Frontend wurde dann {power:user-info} eingesetzt.
Darunter der Versuch {user:email} auszugeben, der scheitert an den Sicherheitsregeln von WordPress. Zusätzlich gibt das Plugin für Administratoren eine deutliche Warnung im Frontend aus sobald ein Shortcode Error auftritt.
Bei manchen Shortcodes ergibt nur die Anwendung in Power-Shortcodes auch Sinn. So kann man zum Beispiel eine Anzeige aller Seiten einer Webseite umsetzen mit einem Powershortcode der so aussieht:
{loop:{query:posts @ post-type=page} [{post:title}<br />]}
Übersetzt bedeutet das: in einer Schleife (loop) werden alle Posts ausgelesen (query:post) die als Bedingung haben, dass sie eine Seite sind @post-type=page. Von diesen Posts wird dann der Titel (post:title) ausgegeben.
Mittels geeigneter Filter lassen sich die umfangreichsten Abfragen innerhalb weniger Zeilen umsetzen und zwar ohne ein eigenes Plugin schreiben zu müssen.
Die Filter-Möglichkeiten erlauben detaillierten Zugriff auf PHP-Funktionen, Arrays und Properties.
Das funktioniert natürlich auch mit eigenen Inhaltstypen. Ein Beispiel für einen Inhaltstyp Produkt:
Ohne Link ist eine Produktliste natürlich nur beschränkt brauchbar, daher kann man nun den Powershortcode auch um eine Verlinkung ergänzen:
{loop:{query:posts @ post-type=produkt} [<a href='{post:permalink}'>{post:title}<a><br />]}
Nun haben wir eine super einfache Auflistung aller Produktre mit Links zur Einzelseite,
Jetzt mag bei den Standardinhalten einer WordPress-Umgebung der Nutzen dieser Shortcodes nicht sofort ersichtlich sein, zumal über Blöcke, Widgets und andere Tools eine Menge möglich ist – sobald man aber mit eigenen Inhaltstypen und eigenen Feldern arbeitet wird es richtig spannend. Und zwar schon mit der Basisversion von ACF und dem Standardtheme Twenty Twenty Four.
Für das obige Beispiel der Produkte lässt sich ja sehr einfach ein eigenes Template anlegen um die Produktseiten zu gestalten. Dieses muß den einzelnen Produkten zur Anzeige zugewiesen werden.
Mehr Dynamik kann für Webdesigner ohne Coding-Erfahrung mit Hilfe dieses Plugins einfach realisiert werden. Aber auch erfahrene Entwickler können mit diesem Tool einfach und schmerzfrei viele Dinge umsetzen. Besonders spannend scheint mir, dass diese Techniken schon bei minimalen Standardumgebungen von WordPress einen hohen Grad an Dynamisierung – und damit eine Anpassung an ganz individuelle Anforderungen – ermöglichen.
Ausserdem kann das ein wunderbarer Einstieg in die technischen Ebenen von WordPress und PHP sein. Ein Dynamischer Shortcode ist schnell eingesetzt. Ohne Programmierumgebung und Theme- oder Plugin-Erstellung kann damit ein Projekt sehr individuell umgesetzt werden.
Veröffentlicht am: 27. Juni 2024
Letztes Update: 29. Juni 2024