WordPress: Menüs in Artikel oder Seiten einbauen

Seit ein paar Versionen unterstützt WordPress ja das Anlegen eigener Menüs und die modernen Themes unterstützen diese in der Regel. Die Menüs werden im Adminbereich unter „Design | Menüs“ angelegt und können standardmäßig in der Navigation und in der Sidebar als Widget eingesetzt werden.

Als ich vor einiger Zeit die Seite Tests, Vergleiche, Tipps & Anleitungen zu eBook-Readern angelegt habe, wollte ich gern das die aktuellen eReaderangebote mit in die Seite integrieren. Dann könnte ich sie über die Menüs pflegen und kann sicher sein, dass sie überall, wo sie eingebunden sind, aktuell bleiben.

Nach ein wenig herumgesuche bin ich bei Stephanie Leary fündig geworden. Dieser Schnipsel wird einfach in die functions.php im Themeverzeichnis eingefügt:

function print_menu_shortcode($atts, $content = null) {
    extract(shortcode_atts(array( 'name' => null, ), $atts));
    return wp_nav_menu( array( 'menu' => $name, 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');

Und mit diesem Shortcode kann ich nun alle meine Menüs in Artikel oder Seiten einbinden (Leerzeichen im Menüname funktionieren auch):

[menu name="Der Name des Menüs"]

Das Menü erhält außerdem jeweils eine eigene Klasse, die sich von der in der Sidebar unterscheiden und die per Styesheets entsprechend angesprochen werden kann.