编辑WordPress菜单而不更改核心文件

时间:2013-08-29 22:59:05

标签: html wordpress menu

在不编辑核心文件的情况下,更改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>

3 个答案:

答案 0 :(得分:1)

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

如果您只需要在呈现的<span>标记周围添加<a>标记,则应该能够使用beforeafter参数,而不是实现自定义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。

希望对你有所帮助:)