在不编辑核心文件的情况下,更改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>
答案 0 :(得分:1)
使用Wordpress Codex中描述的自定义walker wp_nav_menu
来更改菜单的呈现方式,而无需修改核心文件。其他参数如$before
,$after
,$link_before
,$link_after
和$items_wrap
也可以为您的需求提供足够的自定义。
如果您只需要在呈现的<span>
标记周围添加<a>
标记,则应该能够使用before
和after
参数,而不是实现自定义walker类
例如,在主题文件中调用wp_nav_menu()
时:
<?php
wp_nav_menu(array('theme_location' => 'primary', 'before' => '<span>', 'after' => '</span>'));
?>
答案 1 :(得分:0)
请参阅此帖子:http://digwp.com/2011/11/html-formatting-custom-menus/
您想具体添加什么?自定义容器或额外的liiteite例如..?也许你可以发布一个结构的例子。
答案 2 :(得分:0)
您可以通过创建child theme来更改它。在您的子主题中,您可以放置所有需要新菜单的模板文件。因为如果你直接编辑父主题中的文件,当主题得到更新时,它们将会丢失。
如果你需要更改一些常规内容,那么只需调用my_nav_menu这样的函数,然后从核心目录中的function.php中复制wp_nav_menu函数。然后只需编辑您需要更改的内容,并将该函数重命名为您的子主题的模板文件中的函数名称。所以将wp_nav_menu重命名为my_nav_menu。
希望对你有所帮助:)