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
danmenu_id
untuk mengatur atribut class dan / atau id pada UL.menu_class
danmenu_id
hanya akan berfungsi jika menu diaktifkan. Jika menu tidak adamenu_class
danmenu_id
bukan sebagai<ul>
tetapi sebagai<div>
. Itulah mengapa terlalu banyak pertanyaan tentangwp_nav_menu()
Anda dapat mengujinya :)Jawaban:
Fungsi wp_nav_menu mengambil argumen fallback_cb yang merupakan nama fungsi untuk dijalankan jika menu tidak ada. jadi ubah kode Anda menjadi seperti ini:
Anda bahkan dapat menghapus wadah dari menu dan melakukan hal-hal lain dengan beberapa argumen lagi yang dikirim ke fungsi wp_nav_menu
Semoga ini membantu.
sumber
nav-menu-template.php
fallback_cb - If the menu doesn't exists, a callback function will fire. Defaults to 'wp_page_menu'. Set to false for no fallback
Apa yang harus saya ganti agarwp_nav_menu_no_ul()
bekerja jika saya salahfallback_cb
? Karena itu kembali kosong untuk saat ini.ha ha
Sebenarnya, WordPress mendukung ini secara default:
Default untuk
items_wrap
adalah<ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>
.sumber
<ul>
setelah ditambahkan baru saja mundur'container' => false
jika Anda ingin menyingkirkan pembungkusnya<div>
juga.Kode di bawah ini seharusnya mudah melakukannya.
Referensi tautan ini untuk fungsi wp_nav_menu http://codex.wordpress.org/Function_Reference/wp_nav_menu
sumber
Jika Anda ingin mencetak hanya
<a>
tag, Anda dapat melakukannya:sumber
Bagi saya yang berhasil adalah ini:
Semoga ini bisa membantu.
sumber
Saya tahu bahwa jawaban ini tidak sepenuhnya untuk pertanyaan ini tetapi ada begitu banyak orang yang mengetahui cara menghapus tag ul dan li di WordPress dan menambahkan tag lain di WordPress.
Seperti sebelum menerapkan kode saya, WordPress memberikan jenis output ini dalam menu
Tetapi seseorang ingin mengubah ul menjadi div dan li menjadi tag maka Anda harus menggunakan kode di bawah ini
Ini memberikan output dalam format berikut
sumber