Individuelle Sidebar für Seiten

Eine Sidebar ist ein unersetzliches Navigationselement für eine Internetseite.  Hier können die letzten Artikel angezeigt werden, die letzten Kommentare oder auch die Tag-Cloud. Die Anpassung ist in WordPress vergleichsweise einfach: Im Design unter Widgets werden die jeweiligen Attribute/Elemente für die Sidebar ausgewählt und Hinzugefügt. Was jedoch, wenn die Sidebar für die verschiedenen Seiten der Website unterschiedlich aufgebaut sein soll?

Es gibt verschiedene Möglichkeiten dies  umzusetzen:

  • Es wird eine einzige statische Sidebar implementiert.
  • Es werden verschiedene Sidebars implementiert, die über eine Abfrage ausgewählt werden.

Hat man gute bis sehr gute Kenntnisse im Bereich Html und PHP, dann ist die erste Variante sehr einfach umzusetzen:

<ul id=“sidebar“>
<li><a href=““>Dieser Link wird immer angezeigt!</a></li>
<?php if (is_page(‘Name der Seite’)) : ?>
<li><a href=””>Ich werde nur auf der bestimmten Seite angezeigt!</a></li>
</ul>

Spätestens bei sehr vielen individuellen Verlinkungen und Sidebar-Elementen wird diese Handhabung jedoch sehr unhandlich. Eine etwas handlichere Variante ist dagegen die zweite der beiden genannten.

Am einfachsten kann die neue Sidebar erstellt werden, wenn die vorhandene als Grundlage genutzt wird. Hierzu das zugehörige Template mit einem Editor öffnen und unter einem anderen (!) Namen speichern. Anschließend erfolgt eine kleine Anpassung im Namen des Templates. Aus beispielsweise <!-Right Sidebar Template –> wird dann zum Beispiel <!-Second Right Sidebar Template –>.

Wichtig: Wird das Template namentlich im Template selbst noch einmal aufgerufen, dann muss auch hier der neue Name eingesetzt werden!

Anschließend erneut speichern und in den zugehörigen Design-Ordner auf dem Webspace laden.

Damit ist die Anpassung jedoch noch nicht abgeschlossen, denn die Sidebar ist zwar im Theme vermerkt, wird aber nicht aufgerufen. Dafür müssen als nächstens die Theme-Funktionen angepasst werden. In der Regel ist diese die Datei functions.php. Dort wird die zusätzliche Sidebar über den Befehl

if ( function_exists(‘register_sidebar’) )

register_sidebar(array(‘name’ => ‘Second Right Sidebar’));

gleich zu Beginn der Datei zusammen mit den anderen Sidebars eingelesen. Nun kann sie auch über den Bereich Widgets aufgerufen und angepasst werden.

Im letzten Schritt müssen die verschiedenen Sidebars nun lediglich den einzelnen Seiten zugeordnet werden. Dazu wird das Hauptindex-Template (index.php) angepasst. Dort wird zu Beginn die Sidebar standardisiert über <?php get_sidebar(); ?> aufgerufen. Damit dies für jede Seite unterschiedlich ist, muss der Aufruf etwas angepasst werden:

<?php if(is _page(‘Name der Seite’)) :  get_sidebar(‘Second Right Sidebar’)) : else : get_sidebar(‘Right Sidebar’));  ?>

Nun nur noch speichern und auf den Server laden, anschließend haben die beiden Seiten individuelle Sidebars. Natürlich kann das auch entsprechend für mehrere Seiten durchgeführt werden. Hierfür muss dann natürlich auf die richtige Verschachtelung geachtet werden.