WordPress: Frei konfigurierbare Menüs in bestehenden Blog einbinden

Bereits seit WordPress 3.0 gibt es die neuen frei konfigurierbaren Menüs. Mit diesem Feature hat man die Möglichkeit Navigationsmenüs für den eigenen Blog über den Admin-Bereich zu erstellen und zu verwalten. Zu diesen Menüs kann man dann nicht nur statische Seiten (Pages) hinzufügen, sondern auch Kategorien, Schlagworte (Tags), Links und sogar einzelne Artikel (Posts). Die Menüs können in mehreren Ebenen angeordnet werden.

Bisher hatte ich dieses neue Feature aus WordPress 3.x noch nicht beachtet. Mein mit der Zeit immer weiter verfeinertes WordPress Theme unterstützte bzw. verwendete dieses Feature bis zum heutigen Tag auch noch nicht. In vielen neueren WordPress Themes sind die frei konfigurierbare Menüs häufig schon eingebunden. In älteren Themes sind insgesamt nur drei Schritte notwendig um die Menüs einzubinden.

Integration der frei konfigurierbare Menüs in drei Schritten

Um nun bei mir, in dem doch schon etwas älteren WordPress Themes, die frei konfigurierbaren Menüs verwenden zu können, sind nur drei Schritte notwendig. Macht man diese Schritte nicht, kann man zwar Menüs im Administrationsmenü erstellen, diese haben aber keine Wirkung auf das verwendete Theme.

Schritt 1: Anpassen der functions.php

Um Menüs in älteren WordPress Themes zu aktivieren, muss man als erstes folgenden Code in die functions.php Datei eintragen.

if ( function_exists('register_nav_menus') ) {
	add_theme_support( 'menus' );
	// This theme uses wp_nav_menu() in tree locations.
	register_nav_menus(
		array(
		  'primary' => 'Top Navigation Menu',
		  'pages_menu' => 'Pages Navigation Menu',
		  'foot_menu' => 'Custom Footer Menu'
		)
	);
}

Mit der Methode add_theme_support() wird WordPress mitgeteilt, dass das verwendete Theme das Feature ‘menus’ unterstütz. Mit der zweiten Methode register_nav_menus() werden drei Menus definiert und in WordPress registriert.

Damit stehen ab sofort die drei Menüs ‘primary’, ‘pages_menu’ und ‘footer_menu’ zur Konfiguration im Administrationsbereich von WordPress bereit (siehe Bilder). In das angegebene Array können beliebig viele Menus hinzugefügt und registriert werden. Zum Beispiel ein weiteres Menü für den Fußbereich oder die Sidebars des Weblogs.

Schritt 2: Integration eines Menüs z.B. in der header.php

Auf meinem Weblog habe ich die neuen Menüs in der Header Datei header.php von WordPress eingebracht. Dazu gehört das Top Navigations Menu mit allgemeinen Punkten des Blogs und das Haupt-Navigations Menu mit den Links zu den Hauptkategorien und anderen Seiten auf TeraBlog.

 <?php wp_nav_menu( array('container_class' => 'menu-pages',
 'theme_location'  => 'pages_menu') ); ?>

Mit container_class gibt man die CSS Klasse an, welche für das Menü verwendet werden soll und theme_location wird das entsprechende Menü referenziert, welches in der functions.php definiert wurde.

Mehr Informationen zur Integration von frei definierbaren Menüs in dein vorhandenes Theme findest du auf den WP Codex Seiten zu Navigation Menus und insbesondere zur wp_nav_menu oder register_nav_menus Methode.

Schritt 3: Anpassen der CSS-Datei style.css

Der dritte und letzte Schritt ist das Anpassen der CSS Datei, damit die Menüs auch zum aktuellen Theme passen. Diesen Schritt fand ich eigentlich am schwierigsten. Geholfen hat mir da der Artikel Frei konfigurierbare Menüs in ältere WordPress Themes einbinden von Karsten Vogt.

Mein Fazit zur Integration von WordPress Menüs in ältere Themes

Insgesamt ist die Integration der WordPress Navigations Menüs in ein bestehendes WordPress Themes gar nicht so aufwendig wie ich immer gedacht habe. Das flexible Konfigurieren der Menüs im Adminbereich ist eine echt tolle Sache! Man kann so wirklich in kurzer Zeit die integrierten Menüs anpassen und individuell zusammenstellen – eine klasse Funktion unter WordPress 3.