【问题标题】:Wordpress 4.0 - Broken menusWordpress 4.0 - 损坏的菜单
【发布时间】:2014-11-10 18:30:38
【问题描述】:

我在让自定义菜单在 Wordpress 4.0 中正常工作时遇到问题。似乎以前的任何工作都不再有效,而且我发现自己无法完成我一直在研究的自定义主题。在这个主题中,我应该使用三个自定义菜单,它们都出现在同一页面上(作为页眉、主菜单和页脚菜单)。我的代码如下:

在functions.php上我有这个:

/***********************************************************************
**                Registering the menus used on site                  **
***********************************************************************/

register_nav_menus( array(
    'top_menu' => 'Top header menu.',
    'main_menu' => 'Main site menu. Allows dropdowns.',
    'footer_menu' => 'Footer menu',
) );

同时,为了调用 header.php 和 footer.php 上的菜单,我有这个:

<?php wp_nav_menu( array('menu' => 'top_menu')); ?>
<?php wp_nav_menu( array('menu' => 'main_menu')); ?>
<?php wp_nav_menu( array('menu' => 'footer_menu')); ?>

在 wordpress 4.0 出现之前,这非常有效。现在它只是行不通。我可以在管理面板中看到菜单并为每个位置设置自定义菜单,但是当我打开主题时,我在所有三个地方都得到相同的菜单,即使我的后端状态每个菜单的设置都不同。这没有意义,在我看来它似乎被打破了。

此外,我尝试通过将菜单调用更改为:

<?php wp_nav_menu( array('menu' => 'top_menu', 'theme_location' => '__no_such_location', 'fallback_cb' => false)); ?>

因此消除了菜单中的所有后备。结果?没有打印任何菜单。

我已经看到了一个所谓的“修复”,包括在管理员的菜单名称之前放置一个 AAA,但我不能真正告诉客户为他们的自定义主题这样做,即使那样,这也只是一个试图通过将菜单设置为绝对第一个菜单来解决 WP 菜单不起作用的问题,我担心它对我无论如何都不起作用,因为我需要在同一主题上显示三个不同的菜单。

我在这里遗漏了什么吗?自从我开始使用 WP 以来,我一直做错了吗,还是 WP4.0 真的把菜单弄乱了?有没有办法解决这个问题,因为 AAA 黑客甚至无法满足我的需要?

【问题讨论】:

    标签: php wordpress wordpress-theming


    【解决方案1】:
    <?php
    wp_nav_menu( array(
      'theme_location' => 'top_menu'
    ) );
    ?>
    

    当您注册导航菜单时,您将主题位置设置为top_menumain_menu 等,这就是您需要传递给wp_nav_menu 的内容 - 位置。使用通过register_nav_menus注册的菜单,可以完全省略wp_nav_menusmenu参数。

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      相关资源
      最近更新 更多