2012-09-11 13 views
7

Nel mio tema esiste una funzione per i menu navWordpress. Aggiunta voce di menu manualmente wp_nav_menu

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

Come potrei aggiungere altro elemento manualmente? usando questa funzione da solo.

+0

Perché non aggiungere semplicemente il markup dopo la chiamata di funzione? –

+0

Sì, non capisco cosa intendi, puoi aggiungere manualmente elementi all'interno del markup che hai sopra? Cosa stai cercando di aggiungere esattamente? – csilk

risposta

2

Solo per caso qualcuno ha bisogno di questo:

Le voci di menu possono essere aggiunti manualmente dai filtri che si applicano:

  • wp_nav_menu_items - per tutti i menu
  • wp_nav_menu_{$menu->slug}_items - per il menu con particolare lumaca

Anche modificando items_wrap, ad esempio rimuovendo <ul> e aggiungendolo esplicitamente nel tema: in questo modo sarete in grado di aggiungere i propri oggetti.

+0

Ciò richiede che un menu sia già assegnato a menu_location. C'è un modo per farlo senza un menu assegnato (in Aspetti> Menu). Questo sarebbe utile per il lavoro multisito che sto facendo. – raison

17

Ecco un esempio modificando gli items_wrap.

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>')); 

appena preso il valore predefinito e aggiunto l'href.

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

Questa è sicuramente la soluzione migliore. –

+0

grazie @JasonGlisson –

1

Nessuna delle risposte di cui sopra ha funzionato per me. Questo è un tipo di soluzione jquery che ho usato. Avevo bisogno di aggiungere un'immagine alla fine del mio menu.

Utilizzare wp_nav_menu() come al solito, assicurarsi di specificare una classe in menu_class o specificare un ID.

$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>"); 
     }); 
Problemi correlati