【问题标题】:How to add multiple menus in Wordpress theme?如何在 Wordpress 主题中添加多个菜单?
【发布时间】:2013-06-15 09:00:45
【问题描述】:

我正在开发一个新的 Wordpress 主题,我需要两个菜单,主菜单和页脚菜单。这就是我在functions.php中的内容:

if ( function_exists('register_nav_menus')) {
    register_nav_menus(
        array(
            'main' => 'Main Menu',
            'footermenu' => 'Footer Menu'
        )
    );
}

而且,我正在调用两个菜单,一个在 header.php 中,另一个在 footer.php 中:

<?php $main_menu = array('menu' => 'main', 'container' => 'nav' ); wp_nav_menu( $main_menu ); ?>

<?php $footer_menu = array('menu' => 'footermenu', 'container' => 'nav' ); wp_nav_menu( $footer_menu ); ?>

我还在 Wordpress 菜单管理器中为两个菜单分配了不同的菜单,但是在这两个菜单中,只显示了我分配给第一个菜单的菜单。我不知道为什么。谁能帮我解决这个问题?

谢谢。

【问题讨论】:

  • 乍一看,您的代码对我来说是正确的。您是说 main_menu 和 footer 都显示主菜单吗?
  • 你在哪里调用“register_nav_menus”?我在after_setup_theme 动作钩子中调用我的。

标签: php wordpress loops while-loop


【解决方案1】:

您可以使用数组来存储菜单名称,使用循环我们可以遍历数组并使用wp_nav_menu()函数来获取菜单。

<?php
            $menus = array('menu_about','menu_services','menu_facilities');
        ?>
        <nav  class="footer-navigation">
        <?php foreach ($menus as $value) { ?>
            <ul class="footer-navigation-wrapper">
                <?php
                     wp_nav_menu(array(
                    'menu'           => $value,
                    'items_wrap'     => '%3$s',
                    'container'      => false,                      
                    'link_before'    => '<div>',
                    'link_after'     => '</div>',
                    'fallback_cb'    => false,
                    ));
                    }
                ?>
            </ul>
    </nav>

【讨论】:

    【解决方案2】:

    好的,我已经解决了。我不得不使用theme_location 而不是menu,因为这代表从菜单管理面板中选择的菜单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多