Cerco su questo sito e ho trovato molte risposte a questa domanda. Molti di loro non stanno lavorando sul mio tema.
Ecco una soluzione che ho trovato e funziona in base alle mie esigenze.
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);
}
Questo codice verrà rimosso ul
all'inizio e alla fine di wp_nav_menu()
. Quindi nel mio tema scrivo e basta
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Ma il problema si ripresenta quando non aggiungo o attivo alcun menu tramite admin. http://domain.com/wp-admin/nav-menus.php
Domanda:
Come rimuovo <div><ul>**</ul></div>
se il menu è attivo o meno. Fammi sapere
Finalmente ho funzionato :) 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 funzionerà menu_id
solo se il menu è attivato. Se il menu non esiste menu_class
e menu_id
non è come <ul>
ma come <div>
. ecco perché troppe domande su di wp_nav_menu()
te potrebbero provarlo :)
menu_class
emenu_id
per impostare una classe e / o l'attributo id su UL.