Pesquisei neste site e encontrei muitas respostas para esta pergunta. A maioria deles não está funcionando no meu tema.
Aqui está uma solução que encontrei e está funcionando de acordo com minha necessidade.
function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
Este código será removido ul
no início e no final de wp_nav_menu()
. Então, no meu tema, eu apenas escrevo
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Mas o problema está voltando novamente quando eu não adiciono ou ativo nenhum menu via admin. http://domain.com/wp-admin/nav-menus.php
Pergunta:
Como removo <div><ul>**</ul></div>
se o menu está ativo ou não. Avise-se me
Finalmente eu consegui :) functions.php
function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary',
'fallback_cb'=> 'default_page_menu'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
function default_page_menu() {
wp_list_pages('title_li=');
}
header.php
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
menu_class
e menu_id
só funcionará se o menu estiver ativado. Se o menu não existir menu_class
e menu_id
não for como <ul>
mas <div>
. é por isso que muita dúvida sobre wp_nav_menu()
você pode testá-lo :)
menu_class
emenu_id
para definir um atributo de classe e / ou id no UL.