我发现了一些例子,比如在顶级项目中添加一个类,这样我们就可以在带有子项目的菜单项中显示箭头,但处理已经内置的WordPress类似乎很糟糕,不能在当前和css悬停的情况下显示箭头,这只会破坏所有状态。
当前导航菜单如下所示<li><a>Text</a></li>
有没有办法添加<span class="something"><i class="something"></i></span>
在父级内<a></a>
改为标记?
实例
<li class="main-nav__item">
<a class="main-nav__item-link" href="index.html">
<span class="main-nav__item-icon-wrapper">
<i class="main-nav__item-icon icon-home"></i>
</span>
<span class="main-nav__item-content">Home</span>
</a>
</li>
<li class="main-nav__item">
<a class="main-nav__item-link" href="index.html">
<span class="main-nav__item-icon-wrapper">
<i class="main-nav__item-icon icon-Blog"></i>
</span>
<span class="main-nav__item-content">Blog</span>
</a>
</li>
当前代码在父标记之外添加标记
class Walker_Nav_Menu extends Walker {
public function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat("\\t", $depth);
$output .= "\\n$indent<ul class=\\"main-nav\\">\\n";
}
}
SO网友:Howdy_McGee
您可以使用wp_nav_menu() 类似这样的论点:
wp_nav_menu( array(
\'menu\' => \'Whatever Your Menu Name Is\',
\'link_before\' => \'<span class="main-nav__item-icon-wrapper"><i class="main-nav__item-icon icon-home"></i></span><span class="main-nav__item-content">\',
\'link_after\' => \'</span>\'
) );
link_before
和
*_after
将在文本之前/之后的链接中添加任何内容
before
和
after
将在整个链接之前/之后添加任何内容,但仍在列表项中。
这将把它们添加到all 列表项可以使用CSS设置样式,也可以不按您的意愿显示,我认为这比使用助行器更快、更容易。