it-swarm.asia

Geçerli etkin sayfanın wp_nav_menu () ile manuel olarak nasıl belirtileceği

wp_nav_menu() kullanılırken hangi sayfanın şu anda "etkin" olduğunu manuel olarak belirlemenin bir yolu var mı?

Bir "Ürünler" sayfam var ve bu sayfada çeşitli (dinamik) özel taksonomilere bağlantılarim var. Bu taksonomilerden birine tıkladığımda, "Ürünler" sayfasında kalıyorum ama wp_nav_menu(), hala "Ürünler" sayfasında olduğum gerçeğine atıfta bulunuyor. Bunu düzeltebileceğim bir yol var mı?

Teşekkürler!

Jon

9
Jon

current_page_item sınıfını yalnızca bir menü öğesine eklemek istiyorsanız, nav_menu_css_class filtresini bağlayabilir ve gerekirse bu sınıfı ekleyebilirsiniz. Menü yazdırıldığında denir .

Tüm menüye erişmek ve sınıf eklemek istiyorsanız, wp_get_nav_menu_items dizisinin tamamını bulabileceğiniz $items filtresine bağlanın. Tek tek öğelerin classes özelliklerini düzenleyebilirsiniz.

12
Jan Fabry

@Jon <body <?php body_class(); ?>> kullandığınız sürece WordPress, açılır menüler kullanıyorsanız, current_page_item ile birlikte menünüze current_page_parent sınıfını atayacaktır.

2
Chris_O

Jan nav_menu_css_class filtresinden bahsetti, bu yüzden araştırdım ve bu örnek bana yardımcı oldu Kaynak: https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

function my_special_nav_class( $classes, $item ) {
    if ( is_single() && $item->title == 'Blog' ) {
        $classes[] = 'special-class';
    }
    return $classes;
}    
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );
0
Ross