[WordPress] Current Menu Items i Custom Post Types

Problem:

WordPress nie rozpoznaje aktywnego elementu menu, gdy ten skojarzony jest z własnym typem treści (Custom Post Type) i przy tworzeniu menu nie dodaje do odpowiedniego selektora <li> klasy .current-menu-item przez co nie działa np. automatyczne podświetlanie tego elementu menu.

Rozwiązanie:

W pliku functions.php należy umieścić poniższy fragment kodu i do odpowiedniego elementu menu dodać atrybut title, który będzie nazwą skojarzonego typu treści.

add_filter( 'nav_menu_css_class', 'nk_current_nav_menu_class' );
function nk_current_nav_menu_class($classes, $item) {
$post_type = get_post_type();
if ($item->attr_title != '' && $item->attr_title == $post_type) {
array_push($classes, 'current-menu-item');
};
return $classes;
}

No comments

Comments are closed.