Saya sedang menulis kelas walker yang disesuaikan untuk wp_nav_menu dan ingin dapat menentukan apakah li berisi submenu. Jadi saya ingin markup saya menjadi:
<li class="has_children [other-wordpress-classes]">
<a class="parent-link">Some item</a>
<ul class="sub-menu">
Saya tahu cara menambah dan menghapus kelas dengan baik, saya tidak bisa menemukan apa pun untuk memberi tahu saya jika item saat ini memiliki item anak-anak.
Ada ide?
Terima kasih sebelumnya.
Pembaruan: Pada WordPress 3.7 (Oktober 2013), kelas-kelas CSS telah ditambahkan untuk menunjukkan item menu anak dan halaman dalam menu tema - tidak perlu menggunakan custom walker seperti yang dijaga di inti WordPress.
Kelas CSS diberi nama
menu-item-has-children
danpage_item_has_children
.Untuk solusi lengkap bagi siapa saja yang sedang terburu-buru (memuji jawaban Jan Fabry sebelumnya), lihat implementasi lengkap di bawah ini.
Keluarkan navigasi dalam templat tema Anda:
Kemudian, masukkan hal-hal berikut dalam tema Anda
functions.php
:Output HTML yang dihasilkan akan menyerupai berikut ini:
Untuk informasi lebih lanjut tentang penggunaan kelas walker WordPress, lihat Memahami Kelas Walker .
Nikmati!
sumber
Fungsi ini persis apa yang Anda inginkan. Ini juga menunjukkan Anda cara yang cukup efektif untuk memodifikasi item menu nav. Selain itu, Anda dapat membukanya untuk fungsi yang lebih lanjut (mis. Tema anak) melalui filter item:
Dan ya, hampir setiap kasus - tidak perlu walker khusus.
sumber
jika Anda ingin membuat drop down, Anda dapat melakukannya dengan css saja. membuat kustom nav di WP dengan anak-anak, WordPress secara otomatis menetapkan kelas .sub-menu ke child ul. Coba CSS ini
Anda mungkin ingin menambahkan beberapa jQuery untuk membuatnya sedikit, tetapi ini akan memberi Anda menu drop down yang berfungsi.
sumber
sumber