Das Navigations-Menü ist eine Theme Erweiterung die mit Wordpress 3.0 eingeführt wurde. Es lassen sich auf einfache Weise benutzerdefinierte Menüs in Themes erstellen. Um die Menü-Unterstützung in den Themes zu verwenden, müssen ein paar Code-Segmente zu den Theme Dateien hinzufügt werden.
Inhalt
1 Ändern der functions.php
2 Die Menü-Position in den Template-Dateien hinzufügen
3 Admin-Bereich
4 Menüs für Login
5 Funktionsübersicht
Änderungen in der functions.php
Als Erstens muss im Theme in der functions.php eine Funktion definiert werden, die die Namen der Menüs registriert. Diese erscheinen dann im Admin unter Design – Menüs.
In diesem Beispiel erscheint im Menü ein Header Menü.
function register_my_menus() {
register_nav_menus(
array('header-menu' => __( 'Header Menu' ) )
);
}
Und bei zwei Menüoptionen würde es so aussehen, Header-Menü und Extra-Menü.
function register_my_menus() {
register_nav_menus(
array( 'header-menu' => __( 'Header Menu' ),
'extra-menu' => __( 'Extra Menu' ))
);
}
Um die Menü-Optionen zu aktivieren muss folgender Code noch hinzugefügt werden.
add_action ('init', 'register_my_menus');
Dies teilt dem Theme mit, dass die Funktion ausgeführt werden soll.
Nun müssen noch die Positionen in den Template-Dateien definiert werden.
Sobald das erledigt ist, ist das Theme fast fertig. Als nächsten Schritt muss man dem Theme mitteilen, wo die Menüs angezeigt werden sollen. Dies wird in der betreffenden Theme-Datei vorgenommen. So zum Beispiel müsste das Header-Menü in die header.php. Der Code der hier verwendet wird ist “wp_nav_menu”, er wird für die Menü-Position benötigt. Die betreffende Datei im Theme Editor öffnen, und entscheiden, wo das Menü positioniert werden soll.
So wird dieser Code eingefügt.
<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>
“header-menu” ist der Name für den Code. Im Admin-Menü wird “Header Menu” ohne Bindestrich verwendet, das ist in der functions.php definiert.
Das “Extra-Menü” kann woanders positioniert werden.
Das Menü kann jetzt noch mit einer DIV Klasse versehen werden.
<?php wp_nav_menu( array( 'theme_location' => 'extra-menu',
'container_class' => 'my_extra_menu_class' ) ); ?>
Als “my_extra_menu_class” kann das Menü in der CSS definiert werden.
Das war es schon.
Der Admin - Bereich
Jetzt ist es an der Zeit im Admin-Bereich unter "Design – Menüs" Einstellungen vorzunehmen.
Mit den Menü-Konfigurator können nun individuelle Menüs zusammenstellt werden. Dem Menü einen Namen geben und mit den Pull-Down-Optionen bestücken.
Menüs für Login
Dieses Beispiel zeigt ein anderes Menü für eingeloggte User.
<?php
if ( is_user_logged_in() ) {
wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) );
} else {
wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) );
}
?>
Funktionsübersicht
Navigationsmenü: register_nav_menus () , register_nav_menu () ,
wp_nav_menu ()
<?php $defaults = array(
'theme_location' => ,
'menu' => ,
'container' => 'div',
'container_class' => 'menu-{menu slug}-container',
'container_id' => ,
'menu_class' => 'menu',
'menu_id' => , // ID des ul-Elements
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => , // TEXT vor dem <a>
'after' => , // TEXT nach dem </a>
'link_before' => , // TEXT vor dem Link-Text
'link_after' => , // TEXT nach dem Link-Text
'depth' => 0,
'walker' => );
?>