如何在wordpress自定义菜单步进器中添加或更改li类名称

时间:2014-05-29 19:10:53

标签: wordpress class menu

我正在努力弄清楚如何将自己的类名添加到我的wp_nav_menu中。我有一个自定义的walker菜单设置来更改UL名称,但是如何将css类添加到一层和两层深的li?

我希望我的菜单看起来像这样:

<ul>
    <li class="top_level_class">One</li>
    <li class="top_level_class">Two
        <ul>
            <li class="second_level_class">Hi</li>
        </ul>
    </li>
</ul>

我的自定义助行器看起来像这样:

class My_Walker_Nav_Menu extends Walker_Nav_Menu {
  function start_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<ul class=\"nav-main-sub-list\">\n";
  }
}

但是这只是在UL两个级别上跳出课程。我很困惑如何在LI的一级和两级深度添加课程。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以使用$ depth参数来确定LI元素是否位于顶级或二级UL中,例如顶级中的项目的深度为0,第二级别的深度为1 。

您需要修改start_el方法。见下文,希望能让你入门

class My_Walker_Nav_Menu extends Walker_Nav_Menu {

   function start_lvl(&$output, $depth) {
     $indent = str_repeat("\t", $depth);
     $output .= "\n$indent<ul class=\"nav-main-sub-list\">\n";
   }

   function start_el(&$output, $item, $depth, $args) {

       ...

       if($depth == 1) {
          $class_names = ' class="second_level_class"';
       } else {
          $class_names = ' class="top_level_class"';
       }

       $output .= $indent . '<li' . $class_names . '>';

       ...

    }
}

有关于自定义Walker类的更多信息,请点击此处: https://wordpress.stackexchange.com/questions/116708/customizing-walker-nav-menu http://code.tutsplus.com/tutorials/understanding-the-walker-class--wp-25401

答案 1 :(得分:0)

请按照以下步骤操作,我认为这可能会对您有所帮助。

http:// www.xyz.com/wp-admin/nav-menus.php

查看屏幕顶部,您会看到&#34; Screen Oprions&#34;按钮并单击此按钮并检查&#34; CSS类&#34;选项。

之后你可以给另一个你自定义的CSS课程。