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 ul
pada 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_class
dan menu_id
hanya akan berfungsi jika menu diaktifkan. Jika menu tidak ada menu_class
dan menu_id
bukan sebagai <ul>
tetapi sebagai <div>
. Itulah mengapa terlalu banyak pertanyaan tentang wp_nav_menu()
Anda dapat mengujinya :)
menu_class
danmenu_id
untuk mengatur atribut class dan / atau id pada UL.