2012-09-11 1 views
7

In meinem Thema gibt es eine Funktion für nav MenüsWordpress. Hinzufügen Menüpunkt manuell in wp_nav_menu

function ct_nav() { 
    <nav> 
    <?php wp_nav_menu(array('container_id' => 'nav', 'theme_location' => 'primary')); ?> 
    </nav> 
} 

Wie könnte ich manuell weitere Artikel hinzufügen? Verwenden Sie diese Funktion allein.

+0

Warum fügen Sie das Markup nicht einfach nach dem Funktionsaufruf hinzu? –

+0

Ja, ich verstehe nicht, was Sie meinen, Sie können manuell Elemente innerhalb des Markups hinzufügen, die Sie oben haben? Was versuchst du genau hinzuzufügen? – csilk

Antwort

2

Nur für den Fall, dass jemand muss diese:

Menüpunkte manuell durch die Anwendung von Filtern hinzugefügt werden können:

  • wp_nav_menu_items - für alle Menüs
  • wp_nav_menu_{$menu->slug}_items - für das Menü mit speziellen Schnecken

Auch durch Ändern items_wrap, z. B. durch Entfernen <ul> und Hinzufügen von es explizit in der Thema - auf diese Weise können Sie eigene Artikel hinzufügen.

+0

Dies erfordert ein Menü, das bereits der Position menu_location zugewiesen ist. Gibt es eine Möglichkeit, dies zu tun, ohne ein Menü zugewiesen zu bekommen (in Erscheinungsbilder> Menüs). Dies wäre hilfreich für die Arbeit vor Ort, die ich mache. – raison

17

hier ist ein Beispiel, indem Sie die items_wrap ändern.

wp_nav_menu(array('items_wrap' => '<ul id="%1$s" class="%2$s"><li><a href="http://www.google.com">go to google</a></li>%3$s</ul>')); 

nahm nur den Standardwert und fügte die href hinzu.

7
function add_last_nav_item($items) { 
    return $items .= '<li><a href="#myModal" role="button" data-toggle="modal">Contact</a></li>'; 
} 
add_filter('wp_nav_menu_items','add_last_nav_item'); 
+0

Dies ist definitiv die beste Lösung. –

+0

danke @JasonGlisson –

1

Keine der obigen Antworten funktionierte für mich. Dies ist ein jquery-Typ der von mir verwendeten Problemumgehung. Ich musste am Ende meiner Speisekarte ein Bild hinzufügen.

Verwenden Sie wp_nav_menu() wie normal, achten Sie darauf, eine Klasse in menu_class anzugeben, oder geben Sie eine ID an.

$items = array(
    'theme_location' => 'header-menu', 
    'menu'   => '', 
    'container'  => 'div', 
    'container_class' => 'menu-{menu slug}-container', 
    'container_id' => '', 
    'menu_class'  => 'menuContainer', /* important, since we're targetting it with jquery*/ 
    'menu_id'   => '', 
    'echo'   => true, 
    'fallback_cb'  => 'wp_page_menu', 
    'before'   => '', 
    'after'   => '', 
    'link_before'  => '', 
    'link_after'  => '', 
    'depth'   => 0, 
    'walker'   => '' 
); 
wp_nav_menu($items); 

$(document).ready(function() { 
      $(".menuContainer ul").append("<li><img src='<?php echo get_template_directory_uri(); ?>/img/menuImage.png'></li>"); 
     });