Saya mencari di situs ini dan menemukan banyak jawaban untuk pertanyaan ini. Kebanyakan dari mereka tidak mengerjakan tema saya.
Ini adalah satu solusi yang saya temukan dan berfungsi sesuai dengan kebutuhan saya.
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);
}
Kode ini akan dihapus ulpada awal dan akhir wp_nav_menu(). Jadi dalam tema saya, saya hanya menulis
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Tetapi masalahnya akan datang lagi ketika saya tidak menambah atau mengaktifkan menu apa pun melalui admin. http://domain.com/wp-admin/nav-menus.php
Pertanyaan :
Bagaimana cara menghapus <div><ul>**</ul></div>apakah menu aktif atau tidak. Biarkan aku tahu
Akhirnya saya berhasil :) 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_classdan menu_idhanya akan berfungsi jika menu diaktifkan. Jika menu tidak ada menu_classdan menu_idbukan sebagai <ul>tetapi sebagai <div>. Itulah mengapa terlalu banyak pertanyaan tentang wp_nav_menu()Anda dapat mengujinya :)
menu_classdanmenu_iduntuk mengatur atribut class dan / atau id pada UL.