在除WordPress首页之外的所有页面上将主菜单替换为辅助菜单

时间:2015-05-29 21:07:35

标签: php html css wordpress

我想只在front-page.php(这是我的主页)上显示我的主菜单,并在除我的主页之外的所有其他页面上显示辅助菜单。

我在我的functions.php中注册了主菜单和辅助菜单,如下所示:

register_nav_menus( array(
    'primary' => __( 'Primary Menu', 'nwd' ),
    'secondary' => __( 'Secondary Menu', 'nwd'),
) );

我正在我的header.php中加载我的主菜单(我在菜单中使用wp_navwalker):

            <div class=""> <!-- Menu -->
                <nav class="main-menu navbar-inverse col-md-offset-2 col-md-6" role="banner">
                    <div class="navbar-header">
                      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                      </button>
                    </div>

                        <?php
                            wp_nav_menu( array(
                                'menu'              => 'primary',
                                'theme_location'    => 'primary',
                                'depth'             => 1,
                                'container'         => 'nav',
                                'container_class'   => 'navbar-collapse bs-navbar-collapse collapse',
                                'container_id'      => 'bs-example-navbar-collapse-1',
                                'menu_class'        => 'nav navbar-nav no-gutter cl-effect-4',
                                'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                                'walker'            => new wp_bootstrap_navwalker())
                            );
                        ?>
                </nav>      
            </div> <!-- End menu -->

我尝试过使用WordPress论坛中的9.4 Operations on Collection Objects,但我无法按照自己的意愿行事。

有什么建议吗?

非常感谢所有帮助

2 个答案:

答案 0 :(得分:1)

您可以使用is_front_page()进行检查并提供正确的菜单:

<?php
    $menu_slug = is_front_page() ? 'primary' : 'secondary';

     wp_nav_menu( array(
         'menu'              => $menu_slug,
         'theme_location'    => $menu_slug,
         'depth'             => 1,
         'container'         => 'nav',
         'container_class'   => 'navbar-collapse bs-navbar-collapse collapse',
         'container_id'      => 'bs-example-navbar-collapse-1',
         'menu_class'        => 'nav navbar-nav no-gutter cl-effect-4',
         'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
         'walker'            => new wp_bootstrap_navwalker())
     );
?>

答案 1 :(得分:0)

在条件陈述if (is_front_page())的帮助下,我成功地做了我想要的事。

以下是我在header.php中使用的菜单代码。希望这对某人也有帮助:

<?php

                                    if (is_front_page()){
                                              wp_nav_menu( array(
                                                'menu'              => 'primary',
                                                'theme_location'    => 'primary',
                                                'depth'             => 1,
                                                'container'         => 'nav',
                                                'container_class'   => 'navbar-collapse bs-navbar-collapse collapse',
                                                'container_id'      => 'bs-example-navbar-collapse-1',
                                                'menu_class'        => 'nav navbar-nav no-gutter cl-effect-4',
                                                'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                                                'walker'            => new wp_bootstrap_navwalker())
                                );
                                                    } else {
                                                        wp_nav_menu( array(
                                                'menu'              => 'secondary',
                                                'theme_location'    => 'secondary',
                                                'depth'             => 1,
                                                'container'         => 'nav',
                                                'container_class'   => 'navbar-collapse bs-navbar-collapse collapse',
                                                'container_id'      => 'bs-example-navbar-collapse-1',
                                                'menu_class'        => 'nav navbar-nav no-gutter cl-effect-4',
                                                'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                                                'walker'            => new wp_bootstrap_navwalker())
                                            );
                                                }


                            ?>