0

我已经知道如何将自己的类添加到 Wordpress 菜单或通过以下方式到达子菜单的父 li:

function my_nav_special_class($classes, $item){
    if(in_array('current-menu-ancestor', $classes)){
        $classes[] = 'my_class';
    }
    return $classes;
}
add_filter('nav_menu_css_class' , 'my_nav_special_class' , 10 , 2);

但我不知道如何仅针对子菜单项。如果这个类是 item-title 的 slug 名称,那就太好了,但是简单的类也会很好......

4

1 回答 1

1

为此,您将不得不使用Walker_Nav_Menu,它用于遍历所有菜单项。

$depth - 项目的当前级别(将第一级计为 0 )

$item - 保存项目所有数据的对象

// header.php
wp_nav_menu( array( 'theme_location' => 'primary', 'walker' => new my_walker_nav_menu() ) );

// functions.php
class my_walker_nav_menu extends Walker_Nav_Menu {
    function start_el( &$output, $item, $depth, $args ) {
        if ( $depth == 1 ) {
            $item->classes[] = 'my_class';
        }
        parent::start_el($output, $item, $depth, $args);  
    }
}

上面的示例添加my_class到所有子菜单 li 项目,但这样您可以更改任何您想要的内容。

于 2013-05-23T23:28:35.307 回答