Estou convertendo este menu html para wordpress:
<ul>
<li><a href="/" class="current"><span>Home</span></a></li>
<li><a href="/"><span>About</span></a></li>
</ul>
eu uso:
wp_nav_menu(array(
'menu'=>'mainmenu' ,
'container' => false,
'link_before' => '<span>',
'link_after' => '</span>',
'theme_location' => 'primary')
);
mas o html que recebo é:
<div class="menu">
<ul>
<li class="current_page_item"><a href="http://localhost/goodsoil/" title="Home"><span>Home</span></a></li>
<li class="page_item page-item-2"><a href="http://localhost/goodsoil/?page_id=2" title="About"><span>About</span></a></li>
</ul>
</div>
Se eu usar um menu personalizado, recebo:
<ul id="menu-test" class="menu">
<li id="menu-item-6" class="menu-item menu-item-type-custom current-menu-item current_page_item menu-item-home menu-item-6"><a href="url/"><span>Home</span></a></li>
<li id="menu-item-5" class="menu-item menu-item-type-post_type menu-item-5"><a href="url/?page_id=2"><span>About</span></a></li>
</ul>
mas se eu não usar um menu personalizado 'container' => false não funciona Alguma solução?
Respostas:
[RESOLVIDO] NÃO FUNCIONA quando você está se referindo a um local inexistente. por exemplo, quando você copiou o código de outro lugar ou ainda não criou seu menu ou local no painel.
por exemplo, remova ", 'theme_location' => 'primary'" do seguinte código:
para que pareça
Funciona bem SEM container no meu site SocialBlogsiteWebDesign.com
fonte
appearance->menu
primeiro e depois chame owp_nav_menu(array('menu'=>'<menu_name>','container'=>false))
http://codex.wordpress.org/Function_Reference/wp_nav_menu
fonte
if ( $args->container )
no código de modofalse
ouempty string
não fazer a diferença.você está se referindo à função de fallback dos nav_menus. Esse é "wp_page_menu" e, infelizmente, não produz o mesmo tipo de marcação que um menu personalizado produz.
Para corrigir isso, crie seu próprio menu de fallback. Eu estou usando isso:
Pode ser necessário alterar isso, pois meu tema lida com os menus à sua maneira, mas acho que você entendeu a idéia básica.
E quando você está ligando,
wp_nav_menu
faça comowp_nav_menu(array('fallback_cb' => 'my_page_menu'));
Você também pode combinar as classes com as de um menu personalizado usando este:
Dessa forma, você reduz algumas regras CSS ...
fonte
Desenvolvi uma solução simples e eficiente usando
str_replace
, que pode ser aplicada separadamente para uso em tabelas de menus, em vez deul li
:fonte
Encontrei a solução.
Basta usar "ul" para 'container'
fonte
Tente isto
fonte