tambahkan kelas khusus ke wp_nav_menu menggunakan hook filter nav_menu_css_class

8

Saya memiliki jenis posting khusus dalam tema wordpress saya. Saya ingin menambahkan kelas khusus ke menu nav untuk halaman yang dibuat dalam jenis posting kustom itu. Saya membaca bahwa Anda dapat menggunakan hook filter: "nav_menu_css_class", tetapi daging php saya sangat terbatas. Bagaimana cara mengatur kait filter untuk diterapkan hanya ke halaman jenis posting kustom saya di menu nav dan memberi mereka kelas khusus?

Colin
sumber

Jawaban:

8

di sini adalah contoh sederhana:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

cukup ubah CUSTOM_TYPE_NAMEke nama jenis kiriman khusus Anda dan New_Classdengan nama kelas Anda dan tempelkan cuplikan ini di file functions.php tema Anda.

Bainternet
sumber
Itu bekerja. Menghargai itu!
Colin
Senang bisa membantu.
Bainternet
Pertanyaan lain: $item->type_labelDari mana asalnya dan apakah ada hal-hal lain yang dapat Anda terapkan pada variabel "$ item" ini?
Colin
1
objek $ item dilewatkan oleh panggilan apply_filters dan menampung semua variabel item. Anda bisa mendapatkan daftar dengan menambahkan suatu tempat di fungsivar_dump($item);
Bainternet
Wow, manis! (jalankan saja) Bagus untuk tahu. Terima kasih lagi.
Colin