2011-10-26 17 views
5

tengo que añadir un título a mi menú, que está siendo construido por wp_nav_menu ... algo como esto:¿Cómo agregaría un título antes de la U usando wp_nav_menu?

<div class="container"> 
    <div class="title">My Menu Title</div> 
    <ul class="menu"> 
    <li class="item"><a href="#">Item 1</a></li> 
    <li class="item"><a href="#">Item 2</a></li> 
    <li class="item"><a href="#">Item 3</a></li> 
    </ul> 
</div> 

Me parece extraño que esto no se incluye por defecto: s

Respuesta

6

Esto debería funcionar para ti!

wp_nav_menu(
    array(
    'items_wrap' => '<div class="title">Your menu title</div><ul class="%2$s">%3$s</ul>' 
) 
); 
+1

You rock! Gracias: D – SomethingOn

2

Esto parece una opción un poco roto, he seguido la guía en el Codex de WordPress, y una guía recomendada vinculado, y cada vez, items_wrap no hicieron nada en absoluto, mi código menú original era

<?php wp_nav_menu(array('theme_location' => 'primary','items_wrap' => '<ul id="%1$s" class="sf-menu %2$s">%3$s</ul>')); ?> 

que no funcionaba y después de tirar mucho pelo, me cambiaron a este

<?php wp_nav_menu(array('items_wrap' => '<ul class="sf-menu %2$s">%3$s</ul>')); ?> 

¿Qué hace, ambos son básicamente idénticos, por lo que si no funciona por primera vez no se rinda, quite la parte superior y sigue intentándolo ¡En g!

-3

Hack función wp_nav_menu() en /wp-includes/nav-menu-template.php añadir después de la línea 270

$nav_menu = $items = ''; 

esta línea:

$nav_menu .='<h3>'.$menu->name.'</h3>'; 
0

Comúnmente hay una manera de hazlo sin editar core Copié los códigos de la función wp_nav_menu() y los modifiqué ligeramente para hacerlo.

// set menu arguments 
    $args = array('theme_location' => 'primary_navigation'); 

    // if menu parameter set directly get menu object directly 
    if (isset($args['menu'])) 
    $menu = wp_get_nav_menu_object($args['menu']); 
    // otherwise get it from theme location 
    elseif (!isset($menu) && $args['theme_location'] && ($locations = get_nav_menu_locations()) && isset($locations[ $args['theme_location'] ])) 
    $menu = wp_get_nav_menu_object($locations[ $args['theme_location'] ]); 

    // if menu name exists, pass it into items_wrap 
    if (isset($menu) && isset($menu->name)) 
    $args['items_wrap'] = '<h6>'. $menu->name .'</h6><ul class="%2$s">%3$s</ul>'; 
    wp_nav_menu($args); 

Según WordPress Codex, nunca se debe cortar WordPress núcleo, debido a que:

Do not hack core

Cuestiones relacionadas