Cómo asignar un ID a un menú en WordPress
El siguiente código no produce un UL con ID "nav". Solo genera:
<div class="menu"><ul>
Este es el código:
wp_nav_menu( array( 'theme_location' => 'menu-1', 'container_id' => 'nav';
Según el WP Codex esto debería funcionar. ¿Por qué no funciona?
Versión de WP = 3.5
Actualización
Ahora tengo:
wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '<ul id="nav">%3$s</ul>', 'menu_id' => 'nav'));
pero esto tampoco funciona.

El parámetro correcto para el ul
es menu_id
, y para el contenedor container_id
. Pero el ul
solo funciona si pasas …
'<ul id="%1$s" class="%2$s">%3$s</ul>'
… como argumento items_wrap
.
Puedes codificar el valor directamente así:
wp_nav_menu(
array (
'items_wrap' => '<ul id="nav">%3$s</ul>'
'theme_location' => 'top-menu'
)
);
Ver ¿Existe documentación para el argumento "items_wrap" de wp_nav_menu?

Ahora tengo wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '<ul id="nav">%3$s</ul>', 'menu_id' => 'nav'));

@Steve Desactiva todos los plugins. Estás rompiendo algo muy seriamente. Mi solución funciona en todos los casos.

Según mi entendimiento, menu-1
debe ser el ID
de tu menú. Por favor, lee sobre los parámetros aquí y proporciona los parámetros adecuados.
En mi opinión, tu código debería ser así:
wp_nav_menu( array( 'menu' => 'menu-1', 'container_id' => 'nav' ));

Esto podría ser útil, me ayudó a entender.
<?php wp_nav_menu( array(
'menu' => 0,
'container' =>false,
'menu_class' => 'nav',
'echo' => true,
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'depth' => 0,
'walker' => new description_walker())
);?>
Esto asignaría IDs aleatorios a tus menús cuando los crees. Espero que haya sido útil, no estoy seguro si entendí correctamente la pregunta.
