2014-09-10 146 views
0

我要“主动”类添加到活动菜单项的祖先加入“主动”类于母公司的母公司在wp_nav_menu

enter image description here

我发现这个代码,但它添加类的父甚至当不积极孙子

add_filter('wp_nav_menu_objects', 'add_menu_parent_class'); 
function add_menu_parent_class($items) { 

    $parents = array(); 
    foreach ($items as $item) { 
     if ($item->menu_item_parent && $item->menu_item_parent > 0) { 
      $parents[] = $item->menu_item_parent; 
     } 
    } 

    foreach ($items as $item) { 
     if (in_array($item->ID, $parents)) { 
      $item->classes[] = 'menu-parent-item'; 
     } 
    } 

    return $items;  
} 

如何使其按功能?

回答

0

您可以使用jQuery:

要在当前类添加到li.current-后祖先的父菜单项:

$('.li.current-post-ancestor').parent().parent().addClass('active'); 

注意,第一个父()将带您到父ul元素,第二个父()将您带到ul的李父母。

我总是喜欢在PHP中做一些事情,但有时在jQuery中使用它更容易!你可能会很喜欢,写一个custom menu walker,但这是很多工作。