Navigations-Menü in Wordpress Themes einbauen
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' => );
?>
Kommentare
Beim Seiten-Erstelle n: rechts unten bei Seiten ausschließen, das Häkchen raus (Include this page in lists of pages)
jeder Listenpunkt hat eine eigene ID oder Klasse.
Über CSS können für jeden Punkt auch mehrere Grafiken zugeordnet werden.
kurz gesagt: DANKE!!!!! SAUGEIL, kurz und knapp; in zwei Minuten habe ich einem alten Theme die Menüs verpasst.
Steht bestimmt irgendwo anners auch nochmal, aber das hier hab ich gleich über google bekommen und es hat mir sowas von einfach und unkompliziert geholfen ein uralt Theme mal eben schnell mit Menüs auszustatten; wahnsinn!
Oder das Menü zwar angelegt, aber nicht der Menüposition zugewiesen wurde. Dann verwendet Wordpress automatisch wp_page_menu (siehe oben fallback_cb).
Die Zuweisung erfolgt unter Design->Menüs oben links "Anordnung im Theme".
Ich versuch rauszufinden warum bin allerdings extre verblüfft :)
was mir eine hilfe!
5 Minuten und alles lief! Bombig, ich komme wieder!
Vielen Dank
Alle Kommentare dieses Beitrages als RSS-Feed.