Zuletzt aktualisiert am 14. November 2020.
Beim Aufbau einer Webseite und eines Blogs stößt man immer wieder auf spezifische Anforderungen. So möchte ich nun bestimmte Widgets in Abhängigkeit der Kategorie anzeigen, in der sich der jeweilige Beitrag befindet.
Und so geht das!
So kannst Du Widgets je nach Kategorie einblenden (kostenlos).
Mit Bordmitteln nicht möglich
Im Optimalfall könnte man natürlich direkt in der Widget-Verwaltung im Admin-Bereich einstellen, welches Widget wann angezeigt werden soll.
Da diese Funktionalität aber wohl etwas vom Mainstream abweicht, ist das leider nicht möglich. Wir müssen daher ein wenig Hand anlegen.
Der bequeme Weg: Mittels Plugin
Wie so häufig: Natürlich hatten auch andere Webseitenbetreiber schon das gleiche Problem wie ich. Und natürlich gibt es ein Plugin dafür 😉
Und zwar das Plugin Widget Options. Widget Options bietet eine unglaubliche Fülle an Konditionen. Allerdings sind leider nicht alle Funktionen in der kostenfreien Version nutzbar. Die Anzeige von Widgets in Abhängigkeit von Taxonomien oder der aktuellen Kategorie z.B. ist nur mit der kostenpflichtigen Pro-Version möglich.
Der Nerd-Weg: Über Anpassungen im PHP-Code
Über den Theme-Editor kann man einzelne Templates und Widgets direkt bearbeiten und so mit Hilfe von PHP-Code Widgets entsprechend nur dann anzeigen lassen, wenn man es möchte.
Wir können dafür die sog. “Conditional Tags” zur Hilfe nehmen. Conditional Tags sind nichts anderes als Funktionen, die auf einen Wert checken und true oder false, also wahr oder falsch zurückgeben.
Der Code (PHP) könnte dann wie folgt aussehen (Pseudocode):
if(in_category('4')){
//blende Widget ein
}
Achtung: Dieser Weg sollte nur gegangen werden, wenn alle Stricke reißen, bei fehlerhafter Anwendung kann es sein, dass die Webseite nicht mehr funktioniert.
Außerdem solltest Du Änderungen NUR an einem Child-Theme vornehmen, damit diese nicht bei künftigen Updates deines Themes überschrieben werden.
Der optimale Mittelweg: Conditional-Tags über WP-Options
Jetzt kommt der Clou! Wir können den einfachen Weg über ein Plugin mit dem Weg der Conditional Tags verbinden. Das geht so:
- Widget Options installieren
- In Widget Options das “Display Logic”-Modul aktivieren
- Dann in die Widget-Verwaltung (Design -> Widgets) wechseln und das betroffene Widget öffnen.
- Hier nun das Tab “Logic” öffnen und das entsprechende Conditional Tag eintragen. Wenn wir zum Beispiel unser Widget nur in Beiträgen angezeigt haben wollen, die der Kategorie mit der ID 4 zugeordnet sind, tragen wir dort
in_category('4')
ein. - Fertig: Das Widget wird nun nur in Beiträgen, die der Kategorie mit der ID 4 zugeordnet sind, angezeigt.
Die kostenlose Lösung: Widget Options installieren -> Display Logic aktivieren -> Conditinal-Tag im Feld "Logic" hinterlegen
Viel Spaß!
Roman
Hallo Jan Dirk, funktioniert es auch mit Seiten? Habe es mal mit “page” und der SeitenID versucht. Leider erfolglos.lg