14
Nov
2011

Selbst erstelltes Menü in WordPress Theme aktivieren

Seit WordPress 3.0 gibt es die praktische Möglichkeit, Themes um selbst erstellte Navigationsmenüs zu erweitern. So lassen sich auf einfache Art und Weise ganz individuelle Menüstrukturen erstellen. Um diese Erweiterung im WordPress-Template zu aktivieren, müssen lediglich ein paar Zeilen Code hinzugefügt werden.

Unter “Design” – “Menüs” kann man sich die individuellen Navigationselemente anlegen. Unterstützt das aktuelle WordPress-Theme diese Funktion nicht, erhält man folgenden Hinweis in der Box “Anordnung im Theme”: “Das zurzeit aktive Theme unterstützt von sich aus nicht die WordPress-Menüfunktion, aber du kannst das ‘Individuelles Menü’-Widget nutzen, um hier erstellte Menüs im Theme nutzen zu können.” Das wollen wir natürlich nicht! ;-)

1. Benutzerdefinierte Menüs in der functions.php aktivieren:
Öffne als erstes die functions.php im Template-Ordner und füge folgenden Code ein:

1
2
3
4
5
if ( function_exists('register_nav_menus') ) {
    register_nav_menus(array(
        'main-navi' => __( 'Hauptnavigation' )
    ));
}
if ( function_exists('register_nav_menus') ) {
    register_nav_menus(array(
        'main-navi' => __( 'Hauptnavigation' )
    ));
}

Mittels function_exists() prüfen wir, ob die verwendete WordPress-Version die Funktion register_nav_menus() kennt. Anschließend registrieren wir die Navigation “Hauptnavigation”. Nach dem Speichern der functions.php erscheint dieser Begriff in der Box “Anordnung im Theme” und gibt einem die Möglichkeit, das gewünschte Menü auszuwählen. Sollen mehrere Menüs verwendet werden, muss das Array nur erweitert werden:

1
2
3
4
5
6
if ( function_exists('register_nav_menus') ) {
    register_nav_menus(array(
        'main-navi' => __( 'Hauptnavigation' ),
        'side-navi' => __( 'Seitennavigation' )
    ));
}
if ( function_exists('register_nav_menus') ) {
    register_nav_menus(array(
        'main-navi' => __( 'Hauptnavigation' ),
        'side-navi' => __( 'Seitennavigation' )
    ));
}

2. Menü-Ausgabe im WordPress-Template
Damit das benutzerdefinierte Menü im Theme erscheint, muss es noch in den Template-Dateien aufgerufen werden. Die Hauptnavigation also bspw. in der header.php, die Seitennavigation in der sidebar.php. Dies geschieht mit der Funktion wp_nav_menu():

1
<?php wp_nav_menu( array( 'theme_location' => 'main-navi' ) ); ?>
<?php wp_nav_menu( array( 'theme_location' => 'main-navi' ) ); ?>

“main-navi” bezieht sich auf den Namen, den wir dieser Navigation in der functions.php gegeben haben. Die Funktion wp_nav_menu() lässt sich außerdem um weitere Parameter erweitern, wie z. B. “container_class”, wodurch die Navigation eine eigene CSS-Klasse erhält:

Für die Seitennavigation sähe das bspw. so aus:

1
2
3
4
<?php wp_nav_menu( array(
    'theme_location' => 'side-navi',
    'container_class' => 'side-navi-class'
) ); ?>
<?php wp_nav_menu( array(
    'theme_location' => 'side-navi',
    'container_class' => 'side-navi-class'
) ); ?>

Das war’s auch schon. Im WordPress-Codex findet man eine Liste aller Parameter, die wp_nav_menu() unterstützt.

Eigenen Funkspruch absetzen


9 + = siebzehn