【问题标题】:How add own class to WP Nav Menu如何将自己的类添加到 WP Nav 菜单
【发布时间】:2013-05-19 09:30:49
【问题描述】:

我已经知道如何将自己的类添加到 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 名称,那就太好了,但简单的类也很好......

【问题讨论】:

    标签: wordpress submenu


    【解决方案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添加到所有子菜单项,但是这样你可以改变任何你想要的。

    【讨论】:

    • 很抱歉这么晚才回复。你的代码很好用!谢谢你的帮助:)
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2015-09-03
    • 2015-08-08
    相关资源
    最近更新 更多