在wp_NAV_MENU链接锚标记内添加SPAN类和I标记

时间:2016-01-19 作者:ASMSaief

我发现了一些例子,比如在顶级项目中添加一个类,这样我们就可以在带有子项目的菜单项中显示箭头,但处理已经内置的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";
    }
}

1 个回复
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 将在文本之前/之后的链接中添加任何内容beforeafter 将在整个链接之前/之后添加任何内容,但仍在列表项中。

这将把它们添加到all 列表项可以使用CSS设置样式,也可以不按您的意愿显示,我认为这比使用助行器更快、更容易。

相关推荐

WordPress中声明SplitMenuWalker::Walk($Elements,$max_Depth)时出现警告

我开始在WordPress网站上收到以下错误:警告:SplitMenuWalker::walk($elements,$max\\u depth)的声明应与/home/relati67/public\\u html/wp content/themes/mentis/inc/mega menu/split menu中的walk::walk($elements,$max\\u depth,$args)兼容。php第0行我不知道在这里该怎么办。我发现了一个具有类似内容的线程,但错误指向特定行(不是第0行),并且不