如何在 WordPress 中调用 header.php 中的不同菜单

How to call different menus in header.php in WordPress

我想为不同的模板显示不同的菜单。例如,如果用户在任何页面我想显示一个菜单,如果用户在 post 类别我想显示另一个菜单,如果用户在 single.php 页面我想显示另一个菜单。怎么做 ?

我知道如何在主题中创建多个 header(这些 header 显示不同的菜单)并在不同的模板中调用这些 header。但是我想简单地做这件事,尽管我的 header.php 本身有 if else 语句。怎么做?

我的 header.php 菜单代码是 -

                        <div id="navbar" class="navbar-collapse collapse">
                             <?php
                                wp_nav_menu( array(
                                    'menu'              => 'primary',
                                    'theme_location'    => 'header-menu',
                                    'depth'             => 2,
                                    'container'         => 'div',
                                    'container_class'   => '',
                                    'container_id'      => '',
                                    'menu_class'        => 'nav navbar-nav',
                                    'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                                    'walker'            => new wp_bootstrap_navwalker())
                                );
                            ?>
                        </div>

我想在 header.php 本身做一个 if else 语句,比如 -

<div id="navbar" class="navbar-collapse collapse">
    if(template is page)
    {
        //menu code 1
    }
    else (template is category)
    {
        //menu code 2
    } 
</div>

请帮忙?

您可以尝试一些功能,让您知道您正在使用什么模板,因为您希望有条件地使用它 is_page_template https://developer.wordpress.org/reference/functions/is_page_template/ 可能是最适合您的功能。如果正在使用某个模板,您可以使用它来显示相关菜单。不要忘记最后的一般 else 条件以显示默认菜单:)