忽略大多数wp_NAV_MENU参数

时间:2011-10-21 作者:Nathan G.

我正在尝试为我的网站的页脚获取一个基于文本的导航菜单。我正在使用wp_nav_menu() 根据指示的参数Codex. 他是一段代码(在footer.php):

<div id="footer">
    <?php wp_nav_menu(array(\'depth\'=>1, \'after\'=>\'<span class="sep">|</span>\')); ?><br />
    <div id="address">
        <p>...</p>
    </div>
    <div id="contactInfo">
        <p>...</p>
        <p>...</p>
    </div>
</div><!-- #footer -->
所以,我的目标是让菜单看起来像Home | About | MorePages 仅包含根级别的页面。

问题是:after 参数被忽略!如果我尝试beforeitems_wrap, 与其他参数一起,它们也会被忽略。我已经能够after_linkbefore_link 工作,以及depth.

我尝试过逃避一些东西,不传递HTML,但都没有帮助。

我是基于沙盒主题构建的,但是nav-menu-template.phpnav-menu.php 在WP core中显示不变。

How can I get these custom parameters to work?

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

您无法使用的原因beforeafter 是因为当你打电话的时候wp_nav_menu() 默认回退为wp_page_menu(), 没有beforeafter 参数。

参考第171行:http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/nav-menu-template.php#L137

显然,您试图获取的菜单不存在(没有项目)!$menutrue. 确保已在中创建菜单Appearance > Menus 并将其设置为默认值,或查询现有值,或自定义回退功能,否则wp_page_menu 将被调用,只需列出所有页面。

结束