So lässt du unterschiedliche Inhalte in der Sidebar anzeigen

Wenn du ein großes WordPress Projekt mit vielen Unterseiten besitzt, ist es eine Herausforderung für sich, die Navigation überschaubar zu halten. Schließlich möchtest du deinen Leser ja nicht aufgrund einer komplexen Navigation und Seitenstruktur verlieren, sondern einen Mehrwert bieten. Damit auch ein großer Wordpress Blog schön übersichtlich bleibt, empfiehlt es sich mit verschachtelten Menüs oder mehreren Sidebars zu arbeiten. In diesem How To lernst du, wie du deine Sidebar mit unterschiedlichen Inhalten schmücken und auf einer oder mehreren Seiten und Beiträge deines WordPress Blogs anzeigen lassen kannst.

Dadurch kannst du auf jeder Seite genau die richtigen Inhalte in deiner Sidebar anzeigen lassen. Auf deiner Startseite ist es ratsam deinem Leser die Links zu deinen besten Beiträge anzeigen zu lassen. Während auf deiner Startseite die Kommentare deiner Leser eher nichts zu suchen haben, kannst du diese in der Sidebar in deinen Beiträgen anzeigen lassen. Bei einem Beitrag, in dem du ein Affiliate Produkt empfiehlst, kannst du in der Sidebar mittels eines Widgets nochmals auf das Affiliate Produkt aufmerksam machen. Du selbst wirst es aber am besten wissen, welche Inhalte deinen Lesern auf welcher
Seite angezeigt werden sollen.

Die Lösung mit einem Plugin

Wenn du ein Plugin für unterschiedliche Sidebars verwendest, kannst du dir eine Menge Zeit sparen. Du musst dich nicht mit PHP oder sonstigem Code auskennen und kannst gleich loslegen. Allerdings können zu viele Plugins deinen WordPress Blog verlangsamen. Deswegen zeige ich dir zuerst, wie du ganz einfach mit einem Plugin verschiedene Sidebars in WordPress auf unterschiedlichen Seiten und Beiträgen anzeigen lassen kannst. Später
zeige ich dir wie du es auch ohne Plugin hinbekommen kannst. Ich würde aber die Methode mit dem Plugin bevorzugen.

Display Widgets

Durch die Installation des Plugins Display Widgets, kannst du deine Widgets wie gewohnt anlegen. Allerdings hast du jetzt mehr Funktionsmöglichkeiten, die direkt über dem Speichern-Button stehen:

Display Widgets Gesamtueberblick

Display Widgets Gesamtüberblick

Bei „Show Widget for“ kannst du lediglich einstellen, ob jeder Besucher deines Blogs das Widget in der Sidebar sehen soll. Alternativ kann es auch noch nur in deinem Blog eingeloggten oder nur nicht in deinem Blog eingeloggten Lesern angezeigt werden.

Interessanter ist die zweite Funktion von Display Widgets:

Display Widgets auf bestimmter Seite anzeigen

Display Widgets auf bestimmter Seite anzeigen

Mit der zweiten Funktion von Display Widgets kannst du einstellen, ob das Widget in der Sidebar von deinen Seiten und Beiträgen, die du später mit einem Hacken markierst angezeigt werden soll oder nicht. „Hide on checked pages“ heißt, dass dein erstelltes Widget auf den angekreuzten Seiten und Beiträgen nicht angezeigt wird. „Show on checked pages“ bedeutet, dass dein Widget auf allen von dir angekreuzten Seiten und Beiträgen angezeigt wird.

Display Widgets ankreuzen

Display Widgets ankreuzen

In diesem Beispiel möchte ich, dass dieses Widget niemandem angezeigt wird, der sich im Archiv meines WordPress Blogs befindet. Wenn du weiter runterscrollst, kannst du auch einzelne Seiten und Beiträge deines Blogs ankreuzen und somit genau festlegen, in welcher deiner Unterseiten dieses Widget angezeigt werden soll und auf welcher nicht.

Custom Sidebars

Das Plugin Custom Sidebars ist ebenfalls sehr gut dafür geeignet um verschiedene Inhalte in der Sidebar auf Unterseiten anzeigen zu lassen. Während bei Display Widgets jedes Widget auf bestimmten Seiten und Beiträgen angezeigt oder ausgeblendet werden kann, geht Custom Sidebars noch einen Schritt weiter. Mit Custom Sidebars kannst du nämlich mehrere Sidebars anlegen und auf den gewünschten Seiten anzeigen oder ausblenden lassen. Das Plugin Custom Sidebars sieht in deinem Widget Bereich dann so aus:

Custom Sidebars Start

Custom Sidebars Start

Um eine neue Sidebar anzulegen musst du einfach nur auf „Neue Sidebar erstellen“ klicken. Einfach oder?:

Custom Sidebars Neue Sidebar erstellen

Custom Sidebars – Neue Sidebar erstellen

Hier kannst du den Namen deiner neuen Sidebar eingeben, damit du sie später von deinen anderen Sidebars unterscheiden kannst. Als Beschreibungstext habe ich hierbei Adsense verwendet. In dieser Sidebar möchte ich nämlich nur einen Adsense Banner einfügen und finde durch die Beschreibung Adsense die passende Sidebar später schneller. Natürlich kannst du hier einen individuellen Text einfügen, der es dir erleichtert deine verschiedenen Sidebars unterscheiden zu können. Nachdem ich auf „Sidebar erstellen“ geklickt habe, sieht es so aus:

Custom Sidebars - Meine neue Sidebar

Custom Sidebars – Meine neue Sidebar

Nun kann ich in der von mir erstellten Sidebar1 so viele Widgets einfügen, wie ich möchte. In meinem Fall wähle ich das Widget für individuellen Text und füge meinen Adsense-Code ein. Nun muss ich nur noch in dem Bearbeiten-Modus der Seite oder des Beitrags, auf dem ich die Sidebar verwenden möchte gehen. Dort wird dann auf der rechten Seite folgendes angezeigt:

Custom Sidbars - Sidebar in Beiträge oder Seiten einfügen

Custom Sidbars – Sidebar in Beiträge oder Seiten einfügen

In meinem WordPress Theme das ich für dieses Beispiel verwendet habe, besitzt ich zwei unterschiedliche Sidebar- bzw. Widgetbereiche. Der Haupt-Widgetbereich befindet sich bei dem verwendetet Theme im Footer. Der zweite Widgetbereich befindet sich auf der rechten Seite. Genau dort möchte ich meinen Adsense Banner anzeigen lassen. Deswegen habe ich im zweiten Widgetbereich meine vorhin erstellte Sidebar1 ausgewählt. Nach dem ich durch das Drücken von „Veröffentlichen“ meine Seite aktualisiert habe, wird auf dieser Seite nur noch die Sidebar mit meinem Adsense Banner angezeigt. Natürlich lässt sich das auch beliebig erweitern und ändern.

Ohne Plugins in der Sidebar unterschiedliche Inhalte anzeigen lassen

Damit das funktionieren kann, musst du zuerst das Prinzip der Templates von WordPress kapieren. Nur dann hast du die Voraussetzung, zu verstehen was du mit folgendem Code bezweckst.

Unterschiedliche Sidebars für statische Seiten

Jedes WordPress Theme hat eine Datei die „sidebar.php“ heißt. In dieser ist, wie der Name schon sagt, die Sidebar enthalten. Diese wird von WordPress in den bloginhaltesteuernden Templates eingefügt: „index.php“ und „single.php“. Nun musst du mehrere Versionen von dieser Sidebar erstellen und danach für deine statischen Seiten Templates festlegen. In diese Templates fügst du dann die gewünschte Sidebar ein.

Mehrere Sidebars erstellst du, indem du die „sidebar.php“ deines WordPress Blogs ganz einfach kopierst. Die Kopie kannst du dann beispielsweise „sidebar-startseite.php“ oder „sidebar-beliebteste-seite.php“ nennen. Hauptsache du weißt später wieder, welche Sidebar auf welcher statischen Seite eingefügt werden soll. Nach dem Anlegen deiner neuen Sidebars, musst du diese mit Inhalten füllen. Wenn du die Inhalte nicht direkt in die neuen Sidebar-Dateien tippen möchtest, sondern Widgets verwenden willst, musst du für jede neue Sidebar einen Widgetbereich festlegen. Das machst du indem du in der „functions.php“ folgenden Code schreibst:

<?php
if ( function_exists(‚register_sidebar‘) ) {
register_sidebar(array(
’name‘ => ‚Sidebar – Startseite‘,
‚before_widget‘ => ‚<div id=“%1$s“>‘,
‚after_widget‘ => ‚</div>‘,
‚before_title‘ => ‚<h3>‘,
‚after_title‘ => ‚</h3>‘,
));
register_sidebar(array(
’name‘ => ‚Sidebar – Beliebteste Seite‘,
‚before_widget‘ => ‚<div id=“%1$s“>‘,
‚after_widget‘ => ‚</div>‘,
‚before_title‘ => ‚<h3>‘,
‚after_title‘ => ‚</h3>‘,
));
}
?>

Mit dieser Methode kannst du so viele widgetfähige Bereiche erstellen, wie du möchtest. Diese findest du nach dem Erstellen ganz normal unter „Design“ –> „Widgets“. Jetzt musst du nur noch in jede Sidebar den passenden Widgetbereich einbinden.

„sidebar-startseite.php“:

<div id=“sidebar“>
<?php if ( !function_exists(‚dynamic_sidebar‘) || !dynamic_sidebar(‚Sidebar – Startseite‘) ) : ?>
<?php endif; ?>
</div>

„sidebar-beliebteste-seite.php“:

<div id=“sidebar“>
<?php if ( !function_exists(‚dynamic_sidebar‘) || !dynamic_sidebar(‚Sidebar – Beliebteste Seite‘) ) : ?>
<?php endif; ?>
</div>

Bei dem Erstellen von statischen Seiten kannst du ein Template verwenden. Damit du mehrere Sidebars auf deinen statischen Seiten anzeigen lassen kannst, musst du die „page.php“ deines Themes kopieren und umbenennen. Gibt es keine „page.php“ musst du die „index.php“ kopieren und umbenennen. In diesem Fall nennst du die „page.php“ zu „beliebteste-seite.php“ um. Am Anfang der umbenannten Datei schreibst du praktischerweise folgenden Code:

<?php
/*
Template Name: Beliebteste Seite
*/
?>

Nun wird allerdings noch die normale Standardsidebar in der von „page.php“ in „beliebteste-seite.php“ umbenannten Datei angezeigt. Du möchtest ja aber die „sidebar-beliebteste-seite.php“ in der „beliebteste-seite.php“ anzeigen. Deswegen musst du in der „beliebteste-seite.php folgenden Code suchen:

<?php include(„sidebar.php“); ?>

Wenn du den oberen Code nicht findest, versuch es mit diesem:

<?php get_sidebar(); ?>

Hast du einen der beiden Codes gefunden ersetzte ihn mit folgendem:

<?php include(„sidebar-beliebteste-seite.php“); ?>

Nun gehst du auf „Bearbeiten“ bei der statischen Seite, auf der du die Sidebar „sidebar-bliebteste-seite.php“ einfügen möchtest. Dein neu angelegtes Template findest du auf der rechten Seite in WordPress in dem Feld:

Statische Seiten Templates

Statische Seiten Templates

Unter dem Begriff „Template“ wählst du nun das Template der „beliebtesten-seite.php“ aus. Nun musst du nur noch oben rechts auf „Veröffentlichen“ klicken um die Einstellungen zu speichern. Ab jetzt wird diese Seite mit ihrer eigenen Sidebar angezeigt.

Per Code eine andere Sidebar bei Blogeinträgen anzeigen lassen

Dazu musst du genau so vorgehen, wie weiter oben geschildert. Du musst die „sidebar.php“ kopieren und wieder umbenennen. In der „functions.php“ kannst du wieder einen neuen Widgetbereich anlegen (Code steht oben) und in der kopierten und umbenannten „sidebar.php“ diesen Widgetbereich einfügen (Code steht oben). Der einzige Unterschied besteht nun darin, dass du in der „single.php“ und der „category.php“ deine neue Sidebar einbinden musst. Du musst also wieder folgenden Code suchen:

<?php include(„sidebar.php“); ?>

Findest du diesen nicht, dann suche nach dem Code:

<?php get_sidebar(); ?>

Dieser Code muss mit deiner kopierten und umbenannten „sidebar.php“ ersetzt werden:

<?php include(„hier-den-namen-deiner-umbenannten-sidebar-php-reinschreiben.php“); ?>

Wenn du alles richtig gemacht hast, hast du jetzt für deine Beiträge eine andere Sidebar als für deine statischen Seiten.

Unterschiedliche Sidebars für Kategorien

Es kann aber auch vorkommen, dass du auch eine andere Sidebar für deine unterschiedlichen Kategorien verwenden möchtest. Auch dafür gibt es eine Lösung. Dazu musst du zuerst die ID-Nummer deiner Kategorie herausfinden. Dazu musst du auf „Beiträge“ klicken und und den Unterpunkt „Kategorien“ anwählen. Nun bleibst du auf der Kategorie mit deiner Maus oben, von der du die ID herausfinden möchtest:

Wordpress Kategorie ID herausfinden

WordPress Kategorie ID herausfinden

Ich habe in dem Bild die ID rot eingekreist.

Sobald du die ID von deinen Kategorien weißt, musst du in der „single.php“ folgenden Code hinzufügen und beliebig nach deinen Bedürfnissen erweitern:

<?php $post = $wp_query->post;
if ( in_category(‚1‘) ) {
include(TEMPLATEPATH . ‚/sidebar-deine-kategorie.php‘);
} elseif ( in_category(‚3‘) || in_category(‚5‘) ) {
include(TEMPLATEPATH . ‚/sidebar-eine-andere-kategorie.php‘);
} else {
include(TEMPLATEPATH . ‚/sidebar-fuer-restliche-kategorien.php‘);
}
?>

In diesem Code-Beispiel wird für die Kategorie mit der ID 1 die Sidebar „sidebar-deine-kategorie.php“ verwendet. Für die Kategorien mit den IDs 3 und 5 wird die Sidebar „sidebar-eine-andere-kategoire.php“ verwendet. Für alle anderen Kategorien wird die Sidebar „sidebare-fuer-restliche-kategoiren.php“ verwendet. Falls du schon wieder vergessen hast, wie eine neue Sidebar erstellst werden kann, kannst du es weiter oben nochmals nachlesen.

Damit auf deinen Kategorieseiten die neue Sidebar angezeigt werden kann, musst du die „category.php“ kopieren und sie nach dem Titel deiner Kategorie umbenennen. In diesem Fall in „category-deine-kategorie.php“, „category-eine-andere-kategorie.php“ und „category-fuer-restliche-kategorien.php“. Solltest du keine „category.php“ Datei haben, musst du die „index.php“ Datei kopieren und umbenennen. Nun musst du wieder in diesen neuen Dateien die verschiedenen Sidebars einbinden indem du nach den Codes suchst:

<?php include(„sidebar.php“); ?>

Alternativ:

<?php get_sidebar(); ?>

Dieser muss wieder genau so wie weiter oben ausführlich beschrieben ersetzt werden:

<?php include(„name-deiner-sidebar-php-kategorie.php“); ?>

Mit diesem Wissen dürfte es für dich kein Problem mehr sein. Viel Erfolg!

Bewerte diesen Artikel
1 Stern2 Sterne3 Sterne4 Sterne5 Sterne


Bis jetzt keine Bewertung
Loading...
Dieser Beitrag wurde unter How To's abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

5 Kommentare zu So lässt du unterschiedliche Inhalte in der Sidebar anzeigen

  1. Anna sagt:

    Hallo,
    vielen Dank noch für diesen ausführlichen und leicht verständlichen Artikel! Kannst Du mir vielleicht auch weiterhelfen, wenn es darum geht, anschließend den Contentbereich auszudehnen?
    Mein Theme (Vecta) hat zwei Sidebars und ich habe – aber nur auf den Beitragsseiten – alle Widgets der ersten Sidebar mit einem Plugin ausgeblendet, weil ich mehr Fläche für meine Texte haben möchte (http://bit.ly/1hC1UTV). Ich weiß allerdings nicht, wie ich jetzt vorgehen muss, um die Breite der Texte zu verändern. Wenn ich im CSS die Width des Content vergrößere, sind sofort auch alle anderen Seiten, bei denen aber beide Sidebars sichtbar sind, von der Anpassung betroffen.
    Kannst Du mir einen Tipp geben? Vielen Dank!

  2. Vielen Dank für den Beitrag, es hat mir bei meinem Blog sehr geholfen!

  3. mike sagt:

    Hi !
    Kann ich auch irgendwie sagen :
    Dieses Widget nur in Beitrag ID453 anzeigen?

  4. Hi. Danke für die Tipps in diesem Artikel! Es hat mir weitergeholfen:)

  5. Moriaan sagt:

    Genial !!
    Habe länger nach einer solchen Lösung gesucht und hier nun endlich gefunden. Vielen Dank!
    Da ich für jeden einzelnen Beitrag etwas anderes in der Sidebar zeigen möchte, habe ich das Ganze noch geringfügig angepasst. Die Anforderung ist im Grunde ähnlich wie im Kommentar von mike weiter oben: Dieses Widget nur in Beitrag ID453 anzeigen.

    Das geht sehr komfortabel mit dem Plugin „Advanced Custom Fields“ (ACF). Die entsprechenden Felder werden im Beitrag eingetragen und die Werte dieser Felder werden dann in der Sidebar ausgelesen, so:

    Das heißt, die einzelnen Sidebars werden gar nicht mit Widgets befüllt (so wie oben beschrieben), sondern die Werte der einzelnen ACF-Felder werden direkt in der Sidebar ausgegeben.

    Super Lösung, Danke für den Tipp!

Schreibe einen Kommentar

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

How-to-WordPress.de unterstützt dofollow und ist somit nofollow frei.