为什么连续两次调用wp_NAV_Menu()时没有显示正确的菜单?

时间:2013-10-02 作者:versvs

我只是注意到一些我以前从没见过的奇怪的东西。我正在使用WP 3.6.1进行一个项目。这个项目有两个不同的菜单(实际上是三个,但这并不重要)。我通过wp_nav_menu 作用

我已经做过很多次了。。。但今天不同了。今天它不起作用了:(

我的PHP代码,放在标题中。php,如下所示:

        <nav id="nav-menu-container">
            <div id="main-menu" class="main-menu menu clearfix">
                <?php wp_nav_menu(\'header_main\'); ?>
            </div>
            <div id="secondary-menu" class="secondary-menu menu clearfix">
                <?php wp_nav_menu(\'header_secondary\'); ?>
            </div>
        </nav>
菜单项在中声明functions.php 并且通过仪表板配置了两个不同的菜单,以显示在每个位置。

    if (function_exists(\'register_nav_menus\')){
        register_nav_menu(\'header_main\', \'Menú principal\' );
        register_nav_menu(\'header_secondary\', \'Menú secundario\' );
    }
但第一个菜单仍在这两个位置打印。正如我上面所说,使用两种不同的菜单是我过去做过的事情,但今天我看不到错误。。。还有一个错误,因为它不工作:S

有什么想法吗?

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

你没打电话wp_nav_menu() 正确地

您需要向其传递一个args数组,并声明theme_location 钥匙

我假设,由于传递的是字符串而不是数组,wp_nav_menu() 无法识别该参数,正在返回其默认输出:

与菜单参数给定的ID、slug或名称相匹配的菜单,如果该菜单至少有1项您将在两个位置看到第一个非空菜单输出。

请尝试以下操作:

wp_nav_menu( array(
    \'theme_location\' => \'header_main\'
) ):
以及

wp_nav_menu( array(
    \'theme_location\' => \'header_secondary\'
) ):

SO网友:versvs

问题是wp_nav_menu 需要一个关联数组作为输入,我正在输入一个原始字符串。

此代码可能在任何地方都适用。

    <nav id="nav-menu-container">
        <div id="main-menu" class="main-menu menu clearfix">
    <?php wp_nav_menu( array(\'theme_location\' => \'header_main\') ); ?>
        </div>
        <div id="secondary-menu" class="secondary-menu menu clearfix">
            <?php wp_nav_menu( array(\'theme_location\' => \'header_secondary\') ); ?>
        </div>
    </nav>
对不起,我发了两封信。似乎第一个菜单也没有出现,而是显示为默认选项,因为根本没有传递任何值。

结束

相关推荐

Primary and secondary menus

我试图使主菜单上的每个选项卡都链接到次菜单,这样实际上,每个主选项卡都会指向次菜单中的一组选项卡,而不是保持静态。我希望你能帮助我,我不是一个高级WP用户,所以可以使用简单的术语。更新我已经添加了代码,但它已经显示在我的网页和仪表板上,所以我一定是弄错了,所以我将其粘贴在下面,以便您可以看到。我不知道如何找到主弹头,但我想这是我在主弹头上添加的内容。function km_dynamic_secondary_menu_reg() { global $km_nav_menus;