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
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.
@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.
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 );