No puede hacer esto con wp_nav_menu, ya que genera elementos de la lista y generará un marcado no válido con su código.
Intente usar wp_get_nav_menu_items () en su lugar.
Una solución rápida para un menú desplegable con un andador personalizado:
class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{
// don't output children opening tag (`<ul>`)
public function start_lvl(&$output, $depth){}
// don't output children closing tag
public function end_lvl(&$output, $depth){}
public function start_el(&$output, $item, $depth, $args){
// add spacing to the title based on the current depth
$item->title = str_repeat(" ", $depth * 4) . $item->title;
// call the prototype and replace the <li> tag
// from the generated markup...
parent::start_el(&$output, $item, $depth, $args);
$output = str_replace('<li', '<option', $output);
}
// replace closing </li> with the closing option tag
public function end_el(&$output, $item, $depth){
$output .= "</option>\n";
}
}
En tus plantillas úsala así:
wp_nav_menu(array(
'theme_location' => 'primary', // your theme location here
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<select>%3$s</select>',
));
Pony de un solo truco
fuente
<UL>
s anidados :)Lo he encontrado útil:
Puede seguir cualquier respuesta para simplificar el menú dropdovn del código CSS.
parent
para elementos que tienen un submenúdepth
clase (profundidad0, profundidad1, profundidad2 ...)agrega a function.php tu tema
ahora en header.php
header-menu
reemplazado por el nombre de su menúEl código de ejemplo CSS puede ser el
where
#menu-header-menu
: identifica la lista principal de UL (también debes actualizarla)fuente
Menús desplegables plug-in hace responder a la pregunta:
wp_nav_menu
no se puede utilizar para crear selecto menú desplegable, mientras plugin proporciona ingeniosadropdown_menu()
función que hace el trabajo admirable.fuente