¿Por qué no funciona el argumento container en wp_nav_menu()?
6 feb 2015, 09:44:12
Vistas: 920
Votos: 0
El siguiente código muestra un menú pero falta la etiqueta contenedora <nav>
.
$menu_settings = array(
'menu' => 'Packages',
'container' => 'nav',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => '',
'theme_location' => 'primary' );
?>
<?php wp_nav_menu( $menu_settings ); ?>
Estos menús están registrados en functions.php:
register_nav_menus( array(
'primary' => __( 'Menú de Paquetes', 'nameoftheme'),
'secondary' => __( 'Menú de Servicios', 'nameoftheme' ),
) );
Solo se renderiza un <ul>
con elementos de lista. Los elementos de lista tampoco están envueltos.

codecowboy
1.78K
Comentarios
Todas las respuestas a la pregunta
1
1
Como estoy utilizando el framework de temas roots, esta línea elimina el argumento del contenedor:
function roots_nav_menu_args($args = '') {
$roots_nav_menu_args = array();
$roots_nav_menu_args['container'] = false; // Elimina el contenedor por defecto del menú
if (!$args['items_wrap']) {
$roots_nav_menu_args['items_wrap'] = '<ul class="%2$s">%3$s</ul>'; // Establece el envoltorio de items predeterminado
}
if (!$args['depth']) {
$roots_nav_menu_args['depth'] = 2; // Establece la profundidad del menú a 2 niveles
}
return array_merge($args, $roots_nav_menu_args); // Combina los argumentos
}
add_filter('wp_nav_menu_args', 'roots_nav_menu_args'); // Aplica el filtro a los argumentos del menú

codecowboy
1.78K
6 feb 2015 13:09:53
Preguntas relacionadas
1
respuestas
2
respuestas
1
respuestas