WordPress: die Widget-Ausgabe steuern

Nehmen wir mal an du hast in deinem Theme eine dynamische Sidebar definiert und dort verwaltest du mehrere Widgets. Es könnte dann sein, dass einige der Widgets auf der Startseite und andere wiederum nur auf bestimmten Unterseiten erscheinen sollen.

Sicher, für so etwas braucht man nicht unbedingt eine WordPress-Erweiterung. Mit Hilfe von zum Beispiel Seiten-Templates und Conditional Tags lässt sich die Aufgabe auch lösen. Aber wer keine Lust hat im Code zu werkeln oder sich das nicht zutraut, der kann auf eine Reihe von Plugins zurückgreifen. Hier eine Kurzvorstellung von vier Erweiterungen:

Widget Context

Nach der Installation von Widget Context kann man bei jedem einzelnen Widget entscheiden wo das Widget erscheinen bzw. nicht erscheinen soll:

WordPress: Widget Context im Einsatz
Widget Context im Einsatz

Display Widgets

Bei Display Widgets kann man auch bei jedem Widget bestimmen ob es auf bestimmten Seiten erscheint oder nicht. aber kann man neben Checkboxen auch die IDs der Beiträge angeben wo das Widget erscheinen bzw. nicht erscheinen soll.

WordPress: Display Widgets
Display Widgets im Einsatz

Custom widgets

Bei Custom widgets hat man sehr viele Möglichkeiten um zu steuern wo ein Widget erscheinen soll oder nicht. aber im gegensatz zu den beiden vorherigen Plugins, wie hier nicht direkt am Widget bzw. im Widget-Bereich gearbeitet sondern in einem extra Menüpunkt: TS Custom widgets.

WordPress: Custom widgets
Einstellungen von Custom widgets

Widget Logic

Wer keine Berührungsängste vor den Conditional-Tags hat der könnte sehr gut mit Widget Logic glücklich werden. Anstatt groß Checkboxen zu aktivieren gibt man dann zum Beispiel einfach is_front_page() an um das Widget nur auf der Startseite erscheinen zu lassen.

WordPress: Widget Logic
Widget Logic: Widget nur auf der Startseite

Leider beherrscht das Plugin nicht negative Abfragen, zum Beispiel !is_category() um überall, außer auf Kategorien das Widget anzuzeigen.

Sollte das Plugin nicht funktionieren, dann einfach im Widget-Bereich, ganz unten die beiden Checkboxen Use ‘widget_content’ filter und Use ‘wp_reset_query’ fix aktivieren.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

24 Kommentare

  1. Danke, perun, für die interessante Plugin-Auflistung!
    Allerdings habe ich mich bei Widget Logic doch stark gewundert, warum negative Abfragen angeblich nicht gehen sollen? Denn diese habe ich mit eben diesem Plugin seit Jahren in vielen Projekten am laufen, praktisch, seit es das Plugin gibt! Eben gerade nochmal neu getestet, geht wunderbar. Allerdings verwende ich noch eine Klammer aussen rum: z.B. ( !is_page(‘8’) && !is_category() ) —> geht also auch mit komplexeren Angaben. Wie gesagt, bei verschiedenen WP Versionen/ Installationen im Einsatz seit bestimmt 2 Jahren…

    1. @david,

      ich muss das heute Abend noch einmal testen, aber !is_front_page() hat bei einer Page als Startseite nicht funktioniert. Habe es gestern 2x getestet.

  2. Hallo. Ich bin Anfänger und verwende das Plugin Dynamic Widgets auf meiner Seite http://www.BKOC.de mit dem ich wunderbar zurecht komme. Allerdings fehlt mir bei allen Versionen die angeboten werden eine Zeitsteuerung und eine Tagessteuerung. Ich finde überall nur die Datumssteuerung.

    Also zeige es immer von 8-10 Uhr an oder Zeige es nur Dienstags und Mittwochs an.

    Da ich anfänger bin will ich da natürlich nicht in den Quelltext rein sondern lieber das in deinem Menü anklicken.

    viele Grüße
    Boris

  3. Wird gleich in die Plugin Sammlung gesteckt. Ich verwende das Thesis Theme; damit kann ich zwar die Inhalte diverser Widgets steuern, allerdings nicht auf welchen Typen von Seiten das jeweilige Widget erscheinen soll. Von daher ist es in jedem fall hilfreich.

  4. Auf TiBStudio.de habe ich die Möglichkeit neue Sidebars zu erstellen und diese dann zu einem bestimmten Artikel anzeigen zu lassen, mit den entsprechenden Widgets natürlich. Zu einzelnen Kategorien entsprechende Sidebars zu erstellen ist bei mir noch nicht verwirklicht. Bestimmt lässt sich dies nurch ein if-Schleife in der category.php verwirklichen. Doch gebrauchen tue ich das noch nicht wirklich. Im Moment reicht das bei mir.

    Deine erwähnten Plugins finde ich als eine sehr gute Auswahl und insbesondere ‘Display Widgets’. Einfach und übersichtlich für Jedermann.
    Bei dem letztgenannten ‘Widget Logic’ ist die Kenntnis von Conditional-Tags nötig und das wird viele Abschrecken.
    Aber Du schreibst ja selbst, wer keine Berührungsängste mit diesen Tags hat, für den wäre dieses Plugin ein Versuch wert.

    Abschließend kann ich nicht sagen, welcher direkte Vorteil für mich persönlich vorhanden ist, da ich im Quelltext arbeite um weitere Plugins zu vermeiden.
    Aber vielleicht werde ich ‘Display Widgets’ in meinen engeren Kreis aufnehmen. 🙂

    LG
    Timm

  5. So einfach wie das mit Plugin’s für WordPress auch zu lösen ist, wenn es nicht unbedingt ein Plugin sein muss um die Funktion zu lösen, dann mache ich das per Code direkt im Theme.

    Weil jedes Plugin bläht WordPress nur noch mehr auf und frisst zum Teil auch, bei unsauberer Programmierung des Plugin, MASSEN an Arbeitsspeicher. Von daher, wenn möglich manuell im Code das machen mit “is_front_page()” oder dergleichen.

  6. @Perun:
    Auch diese Bedingung habe ich gerade erfolgreich getestet.

    (Ich weiß allerdings nicht, ob nicht hier und da Plugins oder Theme-Code dazwischen funken, dort, wo es evtl. nicht läuft…)

    Gehts bei dir?

  7. Ich bevorzuge persönlich auch das Plugin Widget Logic, welches allerdings nicht ganz sauber programmiert ist. Wenn man WP_DEBUG aktiviert hat, bekommt man die entsprechenden Problemchen bei den Widget-Einstellungen angezeigt. Diese sind allerdings leicht mittels einer if-Abfrage zu lösen.

  8. Ihre Tipps, Hilfestellungen und Anleitungen sind immer wieder hilfreich. Danke.

  9. Schöne Auswahlliste, da bin ich selber gar nicht drauf gekommen, verschiedene Widgets auf verschiedenen Seiten anzuzeigen. Die von Boris beschriebene Zeitsteuerung wäre auch wirklich interessant, da ergeben sich ganz neue Möglichkeiten.

    Mich würde ein Plugin zur Affiliate-Steuerung interessieren, habt ihr da eine Empfehlung oder reichlich Erfahrungen? Zeitsteuerung und Themenbezug ist auch hier interessant.

    Gruß Martin

  10. Erst einmal danke für diesen Beitrag!
    Ich möchte aber vor dem Plugin Widget Context “warnen”. Für Webseiten Betreiber, deren Webserver auf einem anderem Port läuft (z.B.: example.com:9384), funktioniert die “target by URL”-Funktion nicht.

    Ich habe dafür damals einen Patch geschrieben und mich per Email an den Entwickler damit gewendet. Allerdings scheint er das Plugin nicht mehr aktiv weiter zu entwickeln.

    Natürlich ist das nur ein Grenzfall. 🙂

  11. @Perun:
    Ah, super!
    Ok, mit diesen Checkboxen hatte ich bisher noch nichts zu spielen, aber gut zu wissen, dass davon evtl. auch was abhängt. Guter Tipp! 🙂

  12. Ich bin blutiger Anfänger und wollte mit Widget Context erreichen: Wenn man ein Menuepunkt anklickt erscheint in der Sidebar das entsprechende Untermenu.
    Leider komme ich nicht zurecht, wegen mangelhafter Englischkenntnisse. Gibt es eine deutsche Anleitung? Oder würde jemand mir geduldig helfen können?

  13. Auf der Suche nach einer Lösung für mein “Problem” bin ich bei diesem Beitrag gelandet, aber leider löst er es auch nicht. Daher versuche ich es mal über einen Kommentar .

    Und zwar arbeite ich mit einem Premium Theme von Themeforest (Striking) und habe dort im Footer diverse Widgets (3 Spalten). Die einzelnen Widgets habe ich über Custum-CSS mit einem Border und Background versehen. Soweit alles prima. Allerdings enthalten die verschiedenen Widgets unterschiedlich viel Content und die Höhe der Widgets passt sich automatisch daran an. Ich möchte aber, dass die Rahmen gleich gross sind, vor allem gleich hoch. Über Height in dem jeweiligen CSS der Widgets habe ich es nicht hingekriegt, da zerhaut es den Footer.

    Hast Du eine Idee, wie man das hinkriegt? Bin langsam echt verzweifelt, da ich im Netz bisher keine Lösung gefunden habe.
    Meine Site ist leider noch nicht online, deshalb kann ich leider keine Url posten.

    1000 Dank im Voraus und viele Grüsse
    Christina

Kommentare sind geschlossen.