I’ve placed this code in functions.php of the theme but it doesn’t work:
[ Moderator note: code fixed. Please wrap code in the backtick character or use the code button. ]
// highlight active custom post page in nav
add_filter( 'nav_menu_css_class', 'namespace_menu_classes', 10, 2 );
function namespace_menu_classes( $classes , $item ){
if ( get_post_type() == 'events-manager' ) {
// remove unwanted classes if found
$classes = str_replace( 'current_page_parent', '', $classes );
// find the url you want and add the class you want
if ( $item->url == '/events' ) {
$classes = str_replace( 'menu-item', 'menu-item current_page_parent', $classes );
}
}
return $classes;
}
This bit…
get_post_type() == 'events-manager'
…is wrong. The post type should be event.
Thanks, this solved my problem for the parent butnot for the childs.
add_filter( 'nav_menu_css_class', 'namespace_menu_classes', 10, 2 );
function namespace_menu_classes( $classes , $item ){
if ( get_post_type() == 'event' ) {
// remove unwanted classes if found
$classes = str_replace( 'current_page_parent', '', $classes );
// find the url you want and add the class you want
$url = $item->url;
if ( strpos($url, 'events' ) !== false){
$classes = str_replace( 'menu-item', 'menu-item current_page_parent', $classes );
}
}
return $classes;
}
ex.
parent “events”
— child “events/category”
— child “events/locations”
Any suggestion?