Remova o wrapping div e ul da saída de wp_nav_menu

13

Estou usando o novo sistema de menu do Wordpress, e aqui está o 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>

O que eu quero é apenas isso:

<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>

Não, empacotando div ou ul, tenho tentado algumas maneiras e google mas nada de resultado: (

    
por fuxia 05.10.2010 / 04:50

5 respostas

23

A div de envolvimento é fácil. Quando você usa wp_nav_menu() , adicione este argumento: 'container' => false

Para o elemento <ul> , há um argumento chamado 'items_wrap' . Veja resposta do woodchucky para mais informações sobre isso (e upvote!).

    
por John P Bloch 05.10.2010 / 05:26
27

wp_nav_menu() aceita um parâmetro não documentado

'items_wrap' = > ' <ul id="%1$s" class="%2$s">%3$s</ul> '

Isso é executado por: $nav_menu .= sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );

você pode brincar com os argumentos do sprintf

ex: 'items_wrap' = > '% 3 $ s' removeria o agrupamento <ul> tag

    
por woodchucky 29.03.2011 / 03:59
4

Para gerar apenas li's, inclua isto no array wp_nav_menu:

'container'      => '',
'items_wrap'    => '%3$s',
    
por Mill 08.05.2015 / 13:55
2

'container' => false estava falhando para mim porque eu estava especificando um 'theme_location' e 'menu' não existentes. Funcionou assim que eu consertei isso.

Solução de: wordpress.org/support

    
por Mirko 04.06.2014 / 22:32
0

Para filtrar o div envolvente:

add_filter('wp_nav_menu_args', 'prefix_nav_menu_args');
function prefix_nav_menu_args($args = ''){
    $args['container'] = false;
    return $args;
}
    
por Chris_O 26.04.2011 / 02:54