Mit der Version 3.0 von WordPress wurden benutzerdefinierte Menüs eingeführt. Dies sind Menüs die im Backend unter dem Punkt Design -> Menüs eingestellt werden können. Dabei kann auf die Seiten, die Kategorien sowie auf frei definierbare Links zurück gegriffen werden. Also können auch externe Links in das Menü eingebaut werden.
Mit der Einführung dieses Features gehört die langwierige und für manchen komplizierte Bearbeitung der template Dateien der Vergangenheit an.
Um die benutzerdefinierten Menüs nutzen zu können müssen sie als erstes in der functions.php definiert werden. Es können beliebig viele Menüs mit dem tag register_nav_menus [ref]Function Reference / register_nav_menu auf WordPress.org[/ref] konfiguriert werden. Als Beispiel der Code aus dem Standard themes TwentyTen.
< ?php register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'twentyten' ), ) ); ?>
Nun muss noch an der Stelle wo das Menü erscheinen soll der tag wp_nav_menu [ref]Function Reference / wp_nav_menu auf WordPress.org[/ref] mit den entsprechenden Parametern eingefügt werden. In dem Standard themes TwentyTen sieht das z.B. in der header.php folgendermaßen aus.
< ?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>
Baut man diesen Code nicht in eine seiner template Dateien ein kann das benutzerdefinierte Menü trotzdem verwendet werden. Und zwar als Widget.
Anmerkung: Bei dem dargestellten Code muss jeweils das Leerzeichen vor dem ersten Fragezeichen entfernt werden damit der Code interpretiert wird.




Gibt es eigentlich eine Möglichkeit die benutzerdefinierten Menüs den Benutzern zuzuordnen? Also Menü1 für angemeldete User und Menü2 für nicht angemeldete User!?
Gute Frage! Das geht vielleicht mit den WP-Abfragen ob eingelogggt oder nicht. Ähnlich wie bei der comments.php. Da werden ja Felder ausgeblendet wenn man angemeldet ist.
[MARKED AS SPAM BY ANTISPAM BEE]
Good share,you article very great, very usefull for us…thank you
[hab ich doch gerne gemacht! Komischen Namen hast du...]