2012-09-11 40 views
7

En mi tema hay una función para los menús de navegaciónWordpress. La adición de elemento de menú manualmente en wp_nav_menu

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

¿Cómo podría añadir más artículo de forma manual? usando esta función solo.

+0

¿Por qué no agrega el marcado usted mismo después de la llamada a la función? –

+0

Sí, no entiendo lo que quiere decir, ¿puede agregar manualmente elementos dentro del marcado que tiene arriba? ¿Qué estás tratando de agregar exactamente? – csilk

Respuesta

2

Sólo para el caso de que alguien necesita esto:

Los elementos de menú se pueden añadir manualmente mediante la aplicación de filtros:

  • wp_nav_menu_items - para todos los menús
  • wp_nav_menu_{$menu->slug}_items - para el menú, con especial babosa

También cambiando items_wrap, por ejemplo, quitando <ul> y agregándolo explícitamente en tema: de esta manera podrá agregar sus propios elementos.

+0

Esto requiere que un menú ya esté asignado a la ubicación del menú. ¿Hay alguna manera de hacerlo sin un menú asignado (en Apariencias> Menús). Esto sería útil para el trabajo de varios sitios que estoy haciendo. – raison

17

aquí hay un ejemplo al cambiar 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>')); 

acaba de tomar el valor predeterminado y agregó el 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

Esta es definitivamente la mejor solución. –

+0

gracias @JasonGlisson –

1

Ninguna de las respuestas anteriores funcionó para mí. Esta es una solución tipo jquery que utilicé. Necesitaba agregar una imagen al final de mi menú.

Use wp_nav_menu() como de costumbre, asegúrese de especificar una clase en menu_class o puede especificar una 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>"); 
     }); 
Cuestiones relacionadas