Hapus div pembungkus dan ul dari output wp_nav_menu


17

Saya menggunakan sistem menu baru dari Wordpress, dan ini adalah hasil dari wp_nav_menu ()

    <div class="menu-main-menu-container">
   <ul id="menu-main-menu" class="menu">
   <li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
    <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
    <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>
    </ul>
   </div>

Yang saya inginkan hanya ini:

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21 current_page_item menu-item-28"><a href="http://www.bemang.com/">Trang nhà</a></li>
   <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-29"><a href="http://www.bemang.com/blog/">Blog</a></li>
   <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-30"><a href="http://www.bemang.com/gioi-thieu/">Giới thiệu</a></li>

Tidak, membungkus div atau ul, saya telah mencoba beberapa cara dan google sekitar tetapi tidak ada hasil :(

Jawaban:


28

Pembungkus div mudah. Saat Anda menggunakan wp_nav_menu(), tambahkan argumen ini:'container' => false

Untuk <ul>elemen, ada argumen yang disebut 'items_wrap'. Lihat jawaban woodchucky untuk info lebih lanjut tentang yang itu (dan jawablah!).


Terima kasih banyak kawan! Ini berfungsi sekarang. Saya tidak terbiasa dengan PHP dan tidak tahu bahwa saya harus meletakkan add_filter ke functions.php.

1
Itu masih tidak menjelaskan cara menghapus div, yang agak membungkus wrap_class yang dijelaskan di atas. Argumen kontainer yang disetel ke false tidak berfungsi.
sergio

2
Jika containerargumennya tidak berhasil, itu artinya Anda tidak menggunakan wp_nav_menu. Anda mungkin menjalankan fallback cb, yang defaultnya wp_page_menu(), dengan gagal menentukan menu, atau lokasi menu dengan menu yang ditetapkan.
John P Bloch


5

Untuk menghasilkan hanya li, tambahkan ini ke array wp_nav_menu:

'container'      => '',
'items_wrap'    => '%3$s',

2

'container' => falsegagal bagi saya karena saya menetapkan tidak ada 'theme_location'dan 'menu'. Ini bekerja segera setelah saya memperbaikinya.

Solusi dari: wordpress.org/support


0

Untuk memfilter div pembungkus:

add_filter('wp_nav_menu_args', 'prefix_nav_menu_args');
function prefix_nav_menu_args($args = ''){
    $args['container'] = false;
    return $args;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.