Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save senlin/4388301 to your computer and use it in GitHub Desktop.
Save senlin/4388301 to your computer and use it in GitHub Desktop.
Highlight the wp_nav_menu menu item when on a Custom Post Type.
<?php
// The code below finds the menu item with the class "[CPT]-menu-item" and adds another “current_page_parent” class to it.
// Furthermore, it removes the “current_page_parent” from the blog menu item, if this is present.
// Via http://vayu.dk/highlighting-wp_nav_menu-ancestor-children-custom-post-types/
add_filter('nav_menu_css_class', 'current_type_nav_class', 10, 2);
function current_type_nav_class($classes, $item) {
// Get post_type for this post
$post_type = get_query_var('post_type');
// Removes current_page_parent class from blog menu item
if ( get_post_type() == $post_type )
$classes = array_filter($classes, "get_current_value" );
// Go to Menus and add a menu class named: {custom-post-type}-menu-item
// This adds a current_page_parent class to the parent menu item
if( in_array( $post_type.'-menu-item', $classes ) )
array_push($classes, 'current_page_parent');
return $classes;
}
function get_current_value( $element ) {
return ( $element != "current_page_parent" );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment