2014-09-10 3 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, а второй parent() возвращает вас к родительскому элементу ul.

Я всегда предпочитаю что-то делать на PHP, но иногда гораздо проще взломать его в jQuery! Вы могли бы получить действительно фантазию и написать custom menu walker, но это очень много работы.