WordPress: Widgets nur auf bestimmten Seiten anzeigen

Folgendes Szenario: Ihr betreibt mithilfe von WordPress ein Blog. Zusätzlich bietet ihr noch Inhalte auf einigen Pages oder Custom Post Types an. Ihr möchtet in der Sidebar des Blogs einige spezifische Widgets wie zum Beispiel eine Kategorie- oder Tagliste anzeigen. Diese Widgets sollen aber nur im Blog und nicht auf den anderen Pages angezeigt werden. Bei diesem Praxisbeispiel beinhaltet das Page Template dieselbe Sidebar wie das Blog.

Um dies umsetzen zu können verwende ich das Plugin Widget Logic. Nach erfolgter Installation erscheint in den Widgets-Einstellungen ein neues Feld mit dem Titel Widget logic. Bleibt das Feld leer wird das Widget wie bis anhin auf allen Seiten angezeigt. Fügt ihr nun ein für euch zutreffendes Conditional Tag ein, wird die Anzeige eingeschränkt.

Anwendungsbeispiele des Entwicklers

is_home()
Das Widget wird nur auf der Blog Startseite angezeigt.

!is_page('about')
Das Widget wird überall, aber nicht auf der About Page angezeigt.

!is_user_logged_in()
Das Widget wird nur für nicht angemeldete Besucher angezeigt.

is_category(array(5,9,10,11))
Wird auf den Kategorieseiten mit den ID’s 5, 9, 10 und 11 angezeigt.

is_single() && in_category('baked-goods')
Wird nur auf einzelnen Artikelseiten mit der Kategorie Baked Goods angezeigt.

current_user_can('level_10')
Dieses Widget können nur Administratoren sehen.

strpos($_SERVER['HTTP_REFERER'], "google.com")!=false
Wird angezeigt wenn der Besucher mithilfe von Google auf eure Seite kommt.

Conditional Tags für geschildertes Szenario

Wie oben beschrieben möchte ich ein Widget auf allen Blogseiten anzeigen. is_home() zeigt mir das Widget auf der Blog Startseite an, jedoch nicht auf den Artikel- oder Archivseiten. Möglich für dieses Szenario wären folgende Conditional Tags:

!is_page()
Das Widget wird überall, aber nicht auf Pages angezeigt.

is_home() || is_archive() || is_single()
Diese Conditional Tags bezwecken, dass das betroffene Widget auf der Blog Startseite, Archivseiten oder auf Artikelseiten angezeigt werden.

Ihr seht der Fantasie sind keine Grenzen gesetzt. Bevor ich Widget Logic einsetzte, habe ich das Plugin Display Widgets benutzt. Dies hatte jedoch in Kombination eines anderen Plugins nicht mehr zuverlässig funktioniert.

5 Gedanken zu „WordPress: Widgets nur auf bestimmten Seiten anzeigen

  1. Hallo Stefan,

    ich hätte zu dem Plugin nochmal eine Frage. Ich habe es im Einsatz und dank deiner klasse Anleitung funktioniert es bei mir auch sehr gut.

    Ich habe es so eingerichtet das wenn die Kategorie z.B. „Energie“ aufgerufen wird. Werbung zu Energie angezeigt wird z.B. über Solarenergie.

    Jetzt zu meiner Frage: Wenn jetzt aber ein Leser über eine Suchmaschine direkt auf den Energie-Artikel kommt, dann sieht er die „Energie-Sidebar“ nicht.

    Hast du vielleicht eine Idee wie die „Energie-Sidebar“, immer angezeigt werden kann, wenn der Artikel nur unter der Kategorie „Energie“ veröffentlicht wurde? Ohne das ich jede Artikel-ID, mit in die „Energie-Sidebar“ reinschreibe?

    viele Grüße
    Nils

    1. Hallo Nils, die Lösung hast du dir eigentlich schon gegeben, obwohl sie je nachdem mit viel Aufwand verbunden ist. Der Conditional Tag is_category() spricht nur die Kategorie Archivseite an, jedoch nicht die Ansicht einzelner Beiträge welche sich in dieser Kategorie befinden. Dazu benötigt man is_single(). Es spielt dabei keine Rolle ob der einzelne Beitrag via Suchmaschine oder über die interne Verlinkung aufgerufen wird.

      Je mehr verschiedene Szenarien du hast, desto komplizierter wird es mit der Eingabe der Conditional Tags. In manchen Fällen ist es einfacher gewisse ID’s auszuschliessen anstatt sämtliche gültige ID’s aufzuzählen. Dies wird mit dem !-Zeichen gemacht.

      Vielleicht bist du an einem alternativen Plugin interessiert, welches ich zur Zeit für diese Zwecke einsetze. Es heisst WP Page Widget und kommt ohne Conditional Tags aus. Einfach erklärt, führt es im Backend unter jedem Post die Widget Einstellungen auf. Das selbe gilt für Kategorien und Tags. Dadurch bist du vielleicht ein bisschen schneller als sämtliche ID’s herauszusuchen. Viel Glück!

  2. also auf meiner wp – seite funktioniert das plugin überhaupt nicht! Wenn ich zB das Untermenü nur auf der Startseite anzeigen lassen will, dann sind auf einmal die Inhalte aller anderen Seiten verschwunden, d.h. weiße leere Seiten. Leider genauso nutzlos wie das display widget.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.