Ini adalah proyek pertama saya yang melibatkan WordPress dan saya macet mencoba membuat walker khusus untuk menu footer.
Saya pada dasarnya ingin mengubah menu dari <ul> <li></li> </ul>
struktur ke <p> <span></span> </p>
struktur.
Menu dan hal-hal menampilkan file dan saya telah dapat menyesuaikan start_el
dan end_el
fungsinya tanpa masalah jadi saya sekarang mendapatkan ini:
<ul> <span>*link*</span> <span>*link*</span> </ul>
Yang jelas setengah jalan di sana, saya telah menulis start_lvl()
dan end_lvl()
tag seperti yang ditunjukkan di bawah ini tetapi mereka diabaikan oleh WordPress - tidak ada yang saya masukkan ke dalamnya (bahkan die()
) dieksekusi (yang agak mencurigakan) tapi saya tahu kelas dipanggil karena yang start_el()
fungsi.
function start_lvl(&$output, $depth = 0, $args = array()) {
$output = "\n<p class=\"sub-menu\">\n";
}
function end_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\n</p>\n";
}
Adakah yang tahu mengapa ini terjadi - pernahkah saya melewatkan sesuatu yang sangat jelas !?
Saya menjalankan versi terbaru WordPress di Apache dengan PHP 5.3.6
jika itu membantu.
Terima kasih sebelumnya,
Felix :)
Jawaban:
Kelas my_extended_walker Anda OK, tetapi ketika Anda memanggil fungsi wp_nav_menu gunakan parameter items_wrap .
Start_lvl digunakan untuk elemen anak-anak.
sumber
Ok, tidak yakin apa yang saya baca salah ketika saya memposting ini, tetapi seluruh kelas Anda harus seperti ini:
Dan kemudian lewati 'walker' sebagai parameter saat Anda menelepon
wp_nav_menu
wp_nav_menu( array( 'walker'=>new my_extended_walker() ) );
Jika Anda tahu Anda harus baik-baik saja. Saya melihat kode kerja yang melakukan hal itu. Saya tidak tahu tentang menempatkan
<p>
tag di sana. Anda mungkin mendapatkan markup yang tidak valid.sumber
<div>
alih-alih<p>
hanya untuk melihat apakah saya bisa mendapatkan fungsi-fungsi itu untuk melakukan sesuatu tetapi sejauh ini tidak ada sukacita :(<div>
dan<p>
tidak boleh merusak Walker tetapi dapat mengakibatkan markup tidak valid. Anda miliki$output =
dan tidak ada$output .=
dalamstart_lvl
. Itu bisa menyebabkan masalah. Apakah itu Walker lengkap yang Anda poskan?.=
bit ini sekarang kelas lengkap (saya menghapusstart_lvl()
danend_lvl()
fungsinya untuk melihat apakah mereka membuat perbedaan) - pastebin.com/zfcBxHd8Pernahkah Anda berpikir untuk mengambil semua item menu navigasi menggunakan fungsi
wp_get_nav_menu_items();
bawaan : dan mengeluarkan konten secara manual?Contoh :: Membuat daftar menu sederhana
sumber