如何在标记html到WordPress菜单的转换中包装标记

时间:2018-04-11 作者:user8463989

我正在将非引导菜单转换为wordpress。它没有下拉列表,所以我不认为我需要使用walker类。当我在Google Chrome中检查它时,ul标记类是正确的,li是正确的,但是当我在html菜单上查看a标记时,我可以看到它有一个span标记,例如:

<a href="home">
  <span>Home</span>
</a>
但我的wordpress菜单如下所示:

<a href="home">Home</a>
我需要的样式显示在span标记中,但我不确定如何使用当前的菜单代码执行此操作?

<div class="menu_wrapper">
    <nav id="menu">
            <?php wp_nav_menu(array(
                \'menu_class\' => \'menu menu-main\',
                \'container\' => \'\',
                \'theme_location\' => \'main_menu\'
            ));
            ?>
    </nav>
</div>
这是原始菜单:

<div class="menu_wrapper">
    <nav id="menu">
        <ul id="menu-main-menu" class="menu menu-main">
            <li class="current-menu-item">
                <a href="index.html"><span>Home</span></a>
            </li>
            <li>
                <a href=""><span>item1</span></a>
            </li>
            <li>
                <a href=""><span>item2</span></a>
            </li>
            <li>
                <a href=""><span>item3</span></a>
            </li>
        </ul>
    </nav>
</div>

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

您将要使用link_beforelink_after 的参数wp_nav_menu. 将其设置为\'<span>\'\'</span>\' 分别地

wp_nav_menu( [
  \'menu_class\'     => \'menu menu-main\',
  \'container\'      => \'\',
  \'theme_location\' => \'main_menu\',
  \'link_before\'    => \'<span>\',
  \'link_after\'     => \'</span>\'
] );

结束