alandbh
5/13/2017 - 11:10 PM

This code sets de current menu item for single CPT

This code sets de current menu item for single CPT

/* ----------------

  Aplica a classe ativa / active ou current-menu-item no item de menu da página mãe
  Alan

 ----------------- */
 add_action('nav_menu_css_class', 'add_current_nav_class', 10, 2 );
  
  function add_current_nav_class($classes, $item) {
    
    // Getting the current post details
    global $post;
    
    // Getting the post type of the current post
    $current_post_type = get_post_type_object(get_post_type($post->ID));
    $current_post_type_slug = $current_post_type->rewrite[slug];
      
    // Getting the URL of the menu item
    $menu_slug = strtolower(trim($item->url));
    
    // If the menu item URL contains the current post types slug add the current-menu-item class
    if (strpos($menu_slug,$current_post_type_slug) !== false) {
    
       $classes[] = 'current-menu-item';
    
    }
    
    // Return the corrected set of classes to be added to the menu item
    return $classes;
  
  }