如何向WordPress菜单锚点添加滚动ID

时间:2014-10-14 作者:Zammuuz

在我的主题中,顶部菜单如下所示:

<nav>
  <ul>
       <li>
            <a class=\'active\' data-scroll-nav=\'0\'>Home</a>
       </li>
       <li>
            <a data-scroll-nav=\'1\'>Services</a>
       </li>
  </ul>
</nav>
通过使用自定义walker函数,我能够清理ulli 不需要的类和ID的标记。现在我需要添加"data-scroll-nav". 如何编写自定义函数将其添加到菜单锚定?上面显示的菜单代码的工作原理如下this.

1 个回复
SO网友:Zammuuz

感谢上帝。。我已经自己解决了。这是我用来更新锚标签的函数。

function my_walker_nav($item_output, $item, $depth, $args) {
    $menu_locations = get_nav_menu_locations();

if(!empty( $item->description ))
    $description = $item->description;
else {
   $description = \'\'; 
}

 if ($item->menu_order == 1){

 $item_output = preg_replace(\'/<a /\', \'<a data-scroll-nav="\'.$description.\'" \', $item_output, 1);

}
    return $item_output;
}
add_filter(\'walker_nav_menu_start_el\', \'my_walker_nav\', 10, 4);

结束

相关推荐

Walker导航从某一深度移除子菜单UL

我想删除sub-menu ul和.menu-item-has-children 当菜单深度优于或等于2时初始化。所以,我只想要一个最多有3个子菜单的菜单。其他子项仍将显示在菜单中,但不会显示在子菜单中。使用wp\\U nav\\U菜单(“深度”=>3),它不会附加所有项目。所以,我想我需要使用一个定制的walker导航。我不知道该怎么做start_lvl. 如何计算深度并删除ul和类。。。我的目标是更改此菜单:菜单项具有子菜单项1菜单项2菜单项具有子菜单项3菜单项4菜单项具有子菜单项5菜单项6:菜单