Dieser Artikel gibt eine smarte Lösung um Shortcodes für WordPress auch in Widgets nutzbar machen zu können.
Immer wieder werden lesen wir in verschiedenen WordPress-Foren und -Communities die Frage, ob und wie sich Shortcodes in WordPress auch in den Widget-Areas nutzen lassen. Dabei stoßen wir auf die verschiedensten Lösungsansätze, die nicht selten auf teils fragwürdige, überladene und sogar sicherheitsbedenkliche Plugins verweisen. Im WordPress-Webdesign sollte jeder Webmaster stets danach bestrebt sein, seinen WordPress-Blog oder -Website schlank zu halten und die Anzahl seiner verwendeten Plugins schlank zu minimieren.
Was sind WordPress Shortcodes?
Mit Hilfe von Shortcodes können teils umfangreiche Aufgaben übernommen werden, für die sonst Code-Arbeit anfallen würde. Sie kennzeichnen sich durch ihre eckige Klammern ([]), zum Beispiel: [cooleBildergallerie=“1″] oder [coolerButton color=“green“ text=“Klick mich“]. Die Shortcodes werden entweder vom Theme oder von einem Plugin zur Verfügung gestellt.
Im ersteren Beispiel würde man durch das Einfügen des Shortcodes eine offensichtlich ansehnliche Bildergallerie seinen Seitenbesuchern zur Verfügung stellen. Im Beispiel zwei einen Button der Farbe grün mit dem Text „Klick mich“.
Für WordPress existieren eine große Anzahl verschiedener WordPress-Themes und -plugins die sich zum Teil auch für die Suchmaschinenoptimierung sehr gut eignen. Um beispielsweise die Newsletter-Anmeldung, die Kunden-Testmonials oder das Gallerie-Portfolio via Shortcodes auch für die Widgets nutzen zu können, gilt es die Verwendung zunächst in WordPress zu aktivieren.
Shortcodes für Widgets aktivieren – Anleitung in nur 4 Schritten
Um Shortcodes in WordPress Widgets zu aktivieren und somit nutzbar machen zu können, bedarf es lediglich weniger Schritte:
Zunächst einmal gilt es den WordPress Editor aufzurufen. Dieser befindet sich, wie in Abbildung 1 zu sehen, unterhalb des Menüpunktes „Design“ (Design => Editor).
- Anschließend muss das zu bearbeitende Theme ausgewählt werden. Das Feld dafür befindet sich an der oberen rechten Ecke des Fensters. In der Regel ist hier das aktuell verwendete WordPress-Theme bereits vorausgewählt.
- Unterhalb dieses Auswahlbereichs finden sich am rechten Rand die vom Template verwendeten .php-Dateien. Dort Theme-Funktionen (functions.php) suchen und anklicken (Achtung: Nicht zu verwechseln mit der theme-functions.php!). Nach dem Anklicken öffnet sich Im Editor-Bereich links der Inhalt der functions.php.
- Um Shortcodes für Widgets zu aktivieren sollte hier nun im Quellcode zwischen dem öffnenden PHP-Tag (<?php) und schließenden PHP-Tag (?>) folgende Zeile eingefügt werden:
add_filter(‚widget_text‘, ‚do_shortcode‘);
Eine geeignete Stelle dafür ist zum Beispiel direkt unter den einführenden Kommentaren, die sich in PHP durch folgende beide Zeichen jeweils am Zeilenanfang kennzeichnen /* ICH BIN EIN PHP-KOMMENTAR
Wir hoffen wir konnten euch dabei helfen für eure WordPress-Website erfolgreich Shortcodes für Widgets zu aktivieren und würden uns nach erfolgreiche Aktivierung über einen Kommentar von euch freuen. Natürlich stehen wir euch auch für eure Fragen bei möglichen Problemen jederzeit hier im Kommentarbereich gerne zur Verfügung.
Hi,
habe dies genau gemacht. Wollte ein egoogle Maps über einen Shortcode einbinden ( Wird über ein Plugin erzeugt). Habe dann den Shortcode in ein Textwidget kopiert udn bekomme nur ein leere weiße Seite im frontend.
Der Shortcode: (Beispiel)
[res_map address=“Yeronga QLD 4104, Australia“ description=“ {br} Yeronga QLD 4104, Australia {br} Phone: 0040 752 235 756″ directionstext=“(directions to our address)“ icon=“green“ color=“bw“ pancontrol=“no“ scalecontrol=“no“ typecontrol=“no“ streetcontrol=“no“ zoom=“14″ zoomcontrol=“no“ draggable=“yes“ scrollwheel=“no“ width=“100%“ height=“500px“ maptype=“roadmap“ popup=“yes“ center=““]
Hallo Michael,
funktioniert denn der Shortcode, wenn du ihn in den normalen Content-Bereich deiner Wordpress-Seite einfügst?
Gruß,
Marcel
Hallo,
bei mir hat es anfangs auch nicht funktionert.
Und es wird auch nicht bei anderen funktionieren, solange alle fleißig den Code per copy and paste entnehmen.
Warum? 😀
Ich habe auch ein wenig gebraucht um dem Fehler auf die Schliche zu kommen.
Ist ganz simpel:
Die einzelnen Anführungszeichen ( ‘do_shortcode’ ) sind das Problemchen. Das sind Unicode-Zeichen, mit denen PHP nichts anfangen kann.
Das hier sind die richtigen: ‚ ‚.
Trotz alledem hat mir der Leitfaden hier super weitergeholfen, Danke. 😉
Gruß Jan
Marcel eure Webseite scheint den Apostrophen in einen anderen Unicode zu verwandeln. :S
Also für alle die eine Desktop Tastatur haben:
Das Strich-Zeichen nutzen, wo auch das Raute-Zeichen (#) ist (links neben der Enter-Taste).
Gruß
Hi,
ansich klingt das ganz cool und nachdem wo ich glaube suchte.
In meinem Theme kann ich leider nur Twitter Nachrichten in der Fuß oder Sidebar über die Widgets hinzu fügen. Funktionieren auch. Nun kam mir die Idee, wenn es da existiert, einfach über einen Shortcode dies auf eine Normale, in dem Fall Startseite zu verknüpfen!?
Geht dies auch!? Nur, wie wäre dann der Shortcode für den Verweis des Ladens aus dem Widget!? :-/
Vielen Dank schon einmal!
Alex
Hallo Alex,
hast du das von Dir beschriebene Twitter-Plugin selbst geschrieben? Dann kannst du jeden beliebigen Bezeichner wählen. Solltest du auf das Plugin eines anderen Anbieters zurückgreifen, welches keine Shortcodes unterstützt, müsstest du diese entweder selbst ins Plugin programmieren oder du baust Dir ein eigenes Plugin.
Gruß,
Marcel
Hey, ich bin absoluter Anfänger und habe grad die Häckchen „ nach unten gesetzt, nun funktioniert meine wordpress nicht mehr. 🙁 Wie komme ich denn da wieder rein um es zu ändern? Bin dankbar für Eure Antworten. Gruß Stefan
Hallo Stefan,
du musst das Apostroph nutzen. Neben der #-Tatse deiner Tastatur. Ansonsten entferne den Code-Snippet aus deiner PHP-Datei, dann ist deine Seite wieder aufrufbar.
Viele Grüße,
Marcel
Hallo,
leider habe ich den gleichen Fehler gemacht und komme nun nicht mehr auf meinem Blog.
Es wird mir nur noch die Fehlermeldung Error500 angezeigt.
Mit Code-Snippet kann ich nicht wirklich was anfangen.
Kann mir bitte Jemand erklären wie ich diesen Fehler beheben kann um wieder an meinen Blog heran zu kommen?
Bin blutige Anfängerin.
Danke euch.
Viele Grüße
Hallo Anja,
falls du den Code-Schnipsel von unserer Website per Copy&Paste in deine functions.php kopiert hast, lösche diese bitte einmal heraus und schreibe die Code-Zeile noch einmal „per Hand“ in deine functions.php.
Das löst zwar keine 500-Errors (prüfe hierfür deine htaccess-Datei), löst aber womöglich Zeichenfehler in PHP (damit verbunden sind oft Fehler wie „WordPress-Seite zeigt nur noch eine weiße Seite an“ oder „Seite nicht erreichbar“).
Viele Grüße,
Marcel