突出显示当前后祖先的父菜单项

时间:2019-06-12 17:57:57

标签: javascript menu submenu

第1页 第2页 第1类 第3页

因此,当类别1处于活动状态时,第2页获得.current-menu-ancestor,这很好……但是,一旦查看类别1的帖子,则页面2没有特定的类……但是类别1则具有.current-menu-ancestor如预期的那样。

所以最后这里是一个问题:我如何为这些.current-postsant父母分配一个班级?

我正在寻找一个PHP解决方案。 Javascript / jQuery非常清晰……这是一个jQuery解决方案,用于更好地理解我想做什么(对于那些有相同问题并且对JS解决方案感到满意的人):

jQuery('li.current-post-ancestor')。parents('li.menu-item')。addClass('current-menu-ancestor');

1 个答案:

答案 0 :(得分:1)

这可能是您要寻找的。     add_filter('wp_nav_menu_objects','add_menu_parent_class');     函数add_menu_parent_class($ items){

    $parents = array();
    foreach ( $items as $item ) {
        if ( in_array('current-post-ancestor', $item->classes)  ) {
            $parents[] = $item->menu_item_parent;
        }
    }

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

    return $items;    
}

它将为当前后祖菜单项parent添加一个类。我已经在主题中尝试过了,并且效果很好。