Elimine el envoltorio div y ul de la salida de wp_nav_menu

17

Estoy usando el nuevo sistema de menús de Wordpress, y aquí está el resultado de wp_nav_menu ()

    <div class="menu-main-menu-container">
   <ul id="menu-main-menu" class="menu">
   <li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
    <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
    <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>
    </ul>
   </div>

Lo que quiero es solo esto:

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
   <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
   <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>

No, envolviendo div o ul, he estado tratando de varias maneras y busqué en Google pero no obtuve ningún resultado :(

fuxia
fuente

Respuestas:

28

El envoltorio div es fácil. Cuando lo use wp_nav_menu(), agregue este argumento:'container' => false

Para el <ul>elemento, hay un argumento llamado 'items_wrap'. Vea la respuesta de woodchucky para obtener más información sobre eso (¡y votarlo!).

John P Bloch
fuente
¡Muchas gracias hombre! Ahora funciona. No estaba familiarizado con PHP y no sabía que necesitaba poner add_filter en functions.php.
1
Eso todavía no explica cómo eliminar el div, que más bien envuelve el wrap_class explicado anteriormente. El argumento contenedor establecido en falso no funciona.
sergio
2
Si el containerargumento no funciona, eso significa que no estás usando wp_nav_menu. Probablemente esté ejecutando el cb de reserva, que es el predeterminado wp_page_menu(), al no especificar un menú o una ubicación de menú con un menú asignado.
John P Bloch
5

Para generar solo li's, agregue esto a la matriz wp_nav_menu:

'container'      => '',
'items_wrap'    => '%3$s',
Molino
fuente
2

'container' => falseme estaba fallando porque estaba especificando un no existente 'theme_location'y 'menu'. Funcionó tan pronto como solucioné esto.

Solución de: wordpress.org/support

Mirko
fuente
0

Para filtrar el div de envoltura:

add_filter('wp_nav_menu_args', 'prefix_nav_menu_args');
function prefix_nav_menu_args($args = ''){
    $args['container'] = false;
    return $args;
}
Chris_O
fuente