Suche
Suche
Close this search box.
Dynamic Shortcodes

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]

Quickstart

Dynamic Shortcodes ist ein kostenpflichtiges Plugin, eine logische Weiterentwicklung des genialen Token-Systems von Dynamic Content for Elementor. Aktuelle Preise:

  • 1 Site: € 34,- p.a.
  • 3 Sites € 59,- p.a.
  • 1000 Sites € 109,- p.a.

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. 

Backend Dyanmic Shortcodes
Im Backend wird dort, wie der Titel erscheinen soll, der Shortcode {posts:title} eingesetzt.
Frontend Dynamic Shortcodes Titel
Im Frontend wird der Shortcode interpretiert, der Beitragstitel wird angezeigt.

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. 

Die wichtigsten einfachen Shortcodes

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.

Post Dynamic Shortcodes
Im Backend bekommt man einen raschen Überblick über die möglichen Shortcodes.

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:

  • {post:title}
  • {post:ID}
  • {post:featured-image-id}
  • {post:date}

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. 

post-date dynamic shortcode
Die erweiterten Beispiele für den Shortcode {post:date}: hier sehen wir die Möglichkeiten der Ausgabeformatierung. Schliesslich wäre die unformatierte Ausgabe des Timestamps unbrauchbar.

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:

  • post
  • user
  • date
  • query
  • author
  • term
  • option
  • woo
  • acf
  • metabox
  • jet
  • toolset
  • pods
  • call
  • cookie
Gravatar Shortcode
Um auf Gravatar.com zuzugreifen kann man den {user: … Shortcode verwenden.

Filter in Dynamic Shortcodes

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 im Dynamischen Shortcode
Mittels Filter lässt sich die Ausgabe eines Shortcodes anpassen
Dynamic Output Pipe
Die Ausgabe des obigen Beispiels

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 :-).

Power Shortcodes

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:

  • Wenn WordPress aus Sicherheitsgründen Abfragen nicht zulässt
  • Wenn man eine Abfrage startet und man mehr als eine Ergebniszeile benötigt (Listen, etc),

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:

Power Shortcode Beispiel
Ein PowerShortcode erlaubt die Ausgabe mehrerer Werte innerhalb einer Shortcodedefinition.

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.

Frontend Power
Die Anwendung des PowerShortcodes im Frontend.

Query und Loop in Shortcodes

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:

CPT Powershortcode
Eine Auflistung eines eigenen Inhaltstypes "Produkt" mittels Powershortcode
Textblock mit Powershortcode
Die Anwendung erfolgt hier einfach in einem Absatzblock.
Produktliste
Produktliste als Ausgabebeispiel des obigen Beispiels.

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,

ACF und Dynamische Shortcodes

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. 

Produkttemplate mit Shortcodes
In diesem Template werden Dynamische Shortcodes eingesetzt: in der linken Spalte werden die Inhalte des CPTs angezeigt, in der rechten ein Powershortcode mit der Produktliste.
Frontend Produktseite
Im Frontend schaut das dann so aus: ich kann rechts mein Produkt auswählen das links angezeigt wird.

Fazit

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