Saya sedang membangun menu untuk situs web saya. Statis terlihat seperti ini:
<nav>
<ul id="menu">
<li class="item_1"><a href="#">Item 1</a></li>
<li class="item_2"><a href="#">Item 2</a></li>
<li class="item_3"><a href="#">Item 3</a></li>
<li class="item_4"><a href="#">Item 4</a></li>
<li class="item_5"><a href="#">Item 5</a></li>
<li class="item_6"><a href="#">Item 6</a></li>
<li class="item_7"><a href="#">Item 7</a></li>
<li class="item_8"><a href="#">Item 8</a></li>
</ul>
Saya sudah bisa memahami cara mengkustomisasi <ul>
tag, untuk menghilangkan <div>
tag otomatis . Tapi sekarang, saya ingin mengkustomisasi <li>
tag untuk dapat menetapkan class
nama yang berbeda untuk mengontrol perilaku spesifik melalui CSS. Ketika saya menggunakan wp_nav_menu()
outputnya adalah sebagai berikut:
<ul id="menu">
<li id="menu-item-111" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-111"><a href="http://mydomain.com/dummy/fashion/">Fashion</a></li>
<li id="menu-item-112" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112"><a href="http://mydomain.comdummy/documentary/">Documentary</a></li>
<li id="menu-item-113" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-113"><a href="http://mydomain.com/dummy/events/">Events</a></li>
<li id="menu-item-114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-114"><a href="http://mydomain.com/dummy/portraits/">Portraits</a></li>
</ul>
Saya ingin menyingkirkan id
dalam <li>
tag dan mengubah class
untuk mencerminkan nama halaman saya ingin link. Pada dasarnya saya ingin menampilkan hal yang sama dengan potongan kode pertama dalam posting ini.
Alasan mengapa saya melakukan ini, adalah karena saya menggunakan gambar khusus yang dikendalikan oleh CSS saya insted dari teks biasa.
Apakah ini mungkin? Strategi apa yang harus saya gunakan untuk mengatasi masalah ini?
sumber
Jawaban:
Gunakan walker khusus , hapus apa pun yang tidak Anda butuhkan dan tambahkan kelas Anda. Berikut adalah alat bantu yang saya gunakan untuk mendapatkan daftar dengan markup bersih: T5_Nav_Menu_Walker_Simple .
Anda juga dapat memfilter
'nav_menu_css_class'
atau'wp_nav_menu_items'
. Tapi kelas walker lebih mudah dimengerti dan dikontrol menurut saya.sumber
<li>
, bagaimana kita dapat mengontrol elemen mana yang ingin kita simpan?print_r( $item, TRUE )
masing-masingli
. Kemudian putuskan apa yang harus dilakukan dengannya. :)pergi ke tampilan> menu - pilih menu yang Anda inginkan - pergi ke "opsi layar" di kanan atas, pilih "kelas css" - tambahkan kelas ke setiap item menu ..
sumber
Mengatur
<li>
kelas kenav-link
, seperti bootstrap 4.3 membutuhkannya:Anda juga dapat menghapus
id
atribut di array itu.sumber
Seperti poster terakhir yang disebutkan, Anda dapat menambahkan kelas Anda sendiri melalui tampilan> menu dengan kelas CSS dicentang di opsi layar. Di walker, Anda dapat mengakses apa yang Anda masukkan di sana melalui:
Saya bahkan telah menggunakan ini untuk menambahkan gambar yang sudah ditentukan sebelumnya dalam menu - sedikit flakey, tetapi berfungsi.
sumber