Я шукав на цьому сайті і знайшов багато відповідей на це питання. Більшість із них не працює над моєю темою.
Ось одне рішення, яке я знайшов, і воно працює відповідно до моєї потреби.
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);
}
Цей код буде видалено ul
на початку та в кінці wp_nav_menu()
. Тож у своїй темі я просто пишу
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Але проблема виникає знову, коли я не додаю і не активую жодне меню через адміністратора. http://domain.com/wp-admin/nav-menus.php
Питання:
Як видалити, <div><ul>**</ul></div>
чи активне меню чи ні. Дай мені знати
Нарешті я все попрацював :) 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
іmenu_id
лише у тому випадку, якщо меню активовано. Якщо меню не існує menu_class
і menu_id
не є, <ul>
але як <div>
. ось чому занадто багато запитань щодо wp_nav_menu()
вас може це перевірити :)
menu_class
таmenu_id
для встановлення атрибута класу та / або ідентифікатора в UL.