添加“活跃”'在wp_nav_menu中将父类转换为父级的父级

时间:2014-09-10 22:14:11

标签: wordpress nav

我想添加&#34;有效&#34;类<祖> 活动菜单项

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;    
}

如何按功能制作?

1 个答案:

答案 0 :(得分:0)

你可以使用jQuery:

将活动类添加到li.current-post-ancestor的父菜单项:

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

请注意,第一个parent()将您带到父ul元素,第二个parent()将您带到ul的li父级。

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