wp_nav_menu example ejemplos container codex array wordpress menu

wordpress - example - wp_nav_menu li class



¿Cómo agregaría un título antes de la U usando wp_nav_menu? (4)

Esto parece una opción un poco rota, seguí la guía del wordpress codex y una guía recomendada, y cada vez que items_wrap no hacía nada, mi código de 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>'' ) ); ?>

Lo cual no funcionó y después de mucho tirón de pelo, cambié a este

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

Lo cual hace, ambos son básicamente idénticos, así que si no funciona la primera vez, ¡no te rindas, tira y sigue intentándolo!

Necesito agregar un título a mi menú, que está siendo construido por wp_nav_menu ... algo como esto:

<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 esté incluido por defecto: s


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

$nav_menu = $items = '''';

esta línea:

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


Comúnmente hay una manera de hacerlo 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 debes hackear el núcleo de WordPress, porque:


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