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