导航菜单类‘Has-Dropdown’但没有‘Active’

时间:2015-06-09 作者:myol

我有一个深度为2的导航菜单。

wp_nav_menu( array( \'theme_location\' => \'primary_navigation\',
                    \'depth\'          => 2
) );
当我在导航菜单中没有子菜单的页面上处于活动状态时li 菜单项具有active 已附加。但是,当菜单项包含子项时,has-children 追加,但没有“活动”或相关类名。

<ul id="menu-main-top-navigation">
    <li class="parent1"></li>
    <li class="has-dropdown not-click">
        <ul class="dropdown">
            <li class="child1"></li>
            <li class="child2"></li>
        </ul>
    </li>
    <li class="parent3"></li>
    <li class="parent4"></li>
    <li class="active parent5"></li>
    <li class="parent6"></li>
</ul>
在这种情况下,我是与菜单项“parent5”相关的页面。这很好。当我导航到“parent2”时,类名被完全替换为“has dropdown”,因此没有不同的类名或“active”。

我怎样才能解决这个问题。甚至在这种情况下删除JQuery。

2 个回复
SO网友:Hemant Aggarwal

能否为导航菜单添加完整的输出代码。您粘贴的代码似乎是剥离版本。此外,如果列表项当前正在查看,WordPress会将“current\\u page\\u item”类添加到列表项中。

有关更多信息,请查看此WordPress documentation 在添加到导航菜单项的类上。

SO网友:myol

感谢mstoic指出这不是默认的WP功能。这最终成为WordPress堆栈中使用的一个无用功能(对我来说)。

我找到了冒犯的台词,并把它注释掉了。

  $output .= "\\n<ul class=\\"dropdown\\">\\n";
  }

  function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
    $item_html = \'\';
    parent::start_el($item_html, $item, $depth, $args);

    if ($item->is_dropdown && ($depth === 0)) {
      //$item_html = str_replace(\'<li\', \'<li class="has-dropdown not-click"\', $item_html);
    ...

结束

相关推荐

dropdown does not work

我有这一页http://www.supersprox.eu/invoicewithtabs/. 当我单击“显示过滤器”按钮时,会出现一个带有多个下拉列表的区域。问题是我无法选择第一行下拉列表的值。例如,当我单击第一个“字段名”下拉列表时,不会显示包含值的列表,尽管页面的HTML代码显示该下拉列表中有包含值的值id=\'fiedname00\'(值为发票、盖章、零件号、数量等)。但我无法更改加载页面时设置的初始值。但当我按下“添加条件”按钮添加下拉列表的新部分时,这些新下拉列表允许更改其值。为什么会发生这种