0

在不编辑核心文件的情况下更改 WordPress 菜单 (wp_nav_menu) 功能的 HTML 结构的最佳方法是什么。我想在 html 结构中添加一个额外的内容。有人可以就如何最好地做到这一点提供任何建议。

谢谢

抱歉,我应该将 HTML 代码作为参考点。基本上,我想将标签包含在一组跨度中。()

<nav id="access">
    <ul id="menu-sample-menu" class="menu">
        <li id="menu-item-198" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-198"><a href="http://www.threecell.com/demo/category/health-care-professional/">Health Care Professional</a>

        </li>
        <li id="menu-item-197" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-197"><a href="http://www.threecell.com/demo/category/web-designer/">Web Designer</a>

            <ul class="sub-menu">
                <li id="menu-item-199" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-199"><a href="http://www.threecell.com/demo/category/construction-worker/">Construction Worker</a>

                </li>
            </ul>
        </li>
    </ul>
</nav>
4

3 回答 3

1

使用 Wordpress Codex 中描述的自定义 walkerwp_nav_menu来更改菜单的呈现方式,而无需修改核心文件。其他参数,如$before$after、和 ,$link_before也可以为您的需求提供足够的自定义。$link_after$items_wrap

如果您只需要<span>在渲染标签周围添加标签,<a>您应该能够使用beforeandafter参数而不是实现自定义 walker 类。

例如wp_nav_menu()在主题文件中调用时:

<?php
wp_nav_menu(array('theme_location' => 'primary', 'before' => '<span>', 'after' => '</span>'));
?>
于 2013-08-29T23:05:26.477 回答
0

看到这篇文章:http ://digwp.com/2011/11/html-formatting-custom-menus/

您具体想补充什么?例如,自定义容器或额外的 li 项目..?也许你可以发布一个结构的例子。

于 2013-08-29T23:06:34.907 回答
0

您可以通过创建子主题来更改它。在您的子主题中,您可以放置​​所有需要新菜单的模板文件。因为如果您直接编辑父主题中的文件,当主题更新时,它们将丢失。

如果您需要更改一些常规内容,则只需调用 my_nav_menu 之类的函数,然后将 wp_nav_menu 函数从 core 目录中的 function.php 中复制出来。然后只需编辑您需要更改的内容,并将函数重命名为您子主题的模板文件中的函数名称。所以将 wp_nav_menu 重命名为 my_nav_menu。

希望对你有帮助:)

于 2013-08-29T23:21:32.467 回答