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 :(

fuxia
sumber

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!).

John P Bloch
sumber
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',
Pabrik
sumber
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

Mirko
sumber
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;
}
Chris_O
sumber