【问题标题】:The WordPress main menu appear twice in my theme, why?WordPress 主菜单在我的主题中出现两次,为什么?
【发布时间】:2014-01-24 10:09:46
【问题描述】:

我对以下使用 BootStrap CSS 框架的 WordPress 自定义主题感到疯狂:http://onofri.org/WP_BootStrap/

如您所见,我的标题中的水平主菜单有问题。

要创建具有经典 BootStra 样式的 WP 动态主菜单,我使用 wp-bootstrap-navwalker.php 类将其插入到我的主题中,按照您可以阅读的文档:https://github.com/twittem/wp-bootstrap-navwalker

所以,根据之前的文档,我执行了以下操作:

1) 我已将 ** wp_bootstrap_navwalker.php** 类放在自定义主题的根目录中

2) 我在 functions.php 文件中需要它,并在其中放入以下代码:

// Register Custom Navigation Walker
require_once('wp_bootstrap_navwalker.php');

3) 在我的 header.php 文件中,我插入了以下代码:

<body>
    <!-- Header e barra di navigazione -->
    <header>
        <nav class="navbar navbar-default">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="container">

                <div class="navbar-header">

                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">

                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>

                    <a class="navbar-brand" href="<?php echo home_url(); ?>">
                        <?php bloginfo('name'); ?>
                    </a>
                </div>

                <?php
                    wp_nav_menu(array(
                        'menu' => 'primary', 
                        'theme_location' => 'primary', 
                        'depth' => 2,
                        'container' => 'div', 
                        /*'container_class' => 'navbar navbar-default',*/
                        'menu_class' => 'nav navbar-nav', 
                        'fallback_cb' => 'wp_bootstrap_navwalker::fallback', 
                        'walker' => new wp_bootstrap_navwalker())
                    );
                ?>

            </div>
    </nav>
    </header><!-- /header -->

4) 最后我在我的主题中注册了导航菜单,将此代码放入我的 functions.php 文件中:

register_nav_menus(array(
    'primary' => __('Primary Menu', 'THEMENAME'),
) );

好的,如您所见,我可以看到主菜单,但我看到了两次:一个是正确的可视化(带有红色背景的那个),但在上方出现第二个主菜单,我不明白为什么(我从来没有声明了两次)

你对这个问题有什么想法吗?我该如何解决?

Tnx

安德烈亚

【问题讨论】:

  • 检查您的 Wordpress 菜单设置。从那里选择一个主菜单并删除您不使用的菜单。
  • 我的 WP 菜单设置中只有一个菜单!!!
  • 为什么wp_nav_walker中的container_class被注释掉了?
  • 如果您发现解决方案正是您想要的,请务必将答案标记为正确

标签: php css wordpress twitter-bootstrap wordpress-theming


【解决方案1】:

在您的代码源中,我可以看到在您的页面中调用了 2 个菜单。您要删除的菜单是页面中首先调用的内容之一。它属于这个div:

如果您不想要填充/边距,简单的方法是添加到您的 CSS:

.navbar-collapse.collapse {
display: none;
}

但是看看你的页面源代码,你的&lt;!DOCTYPE html&gt;标签之前有所有这些代码

<div class="collapse navbar-collapse navbar-ex1-collapse"><ul id="menu-menu-1" class="nav navbar-nav"><li id="menu-item-12" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-12 active"><a title="Home" href="http://onofri.org/WP_BootStrap/">Home</a></li>
<li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a title="Sample Page" href="http://onofri.org/WP_BootStrap/?page_id=2">Sample Page</a></li>
<li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a title="Google" href="http://google.com">Google</a></li>
</ul></div>

这是您需要删除的内容。此代码远高于您在帖子中复制的代码,它也可能在您的 header.php 文件中,具体取决于您的主题的组织方式。这是页面中调用的第一件事。

【讨论】:

    【解决方案2】:

    检查以确保您的 wp_nav_menu 函数调用未列在“functions.php”文档和 header.php 文件中。

    在我从“functions.php”中删除 wp_nav_menu 函数并将其(连同参数)仅包含在我的 header.php 文件中之前,我遇到了同样的问题。我仍然在我的 functions.php 文件中执行以下操作:

    add_theme_support('菜单'); register_nav_menu('primary','主菜单');

    但现在在我的 header.php 文件中,我把剩下的放在了:

    <?php
    $defaults = array(
      'theme_location'  => 'primary',
      'menu'            => 'primary',
      'container'       => "nav",
      'container_class' => false,
      'container_id'    => '',
      'menu_class'      => 'navigation',
      'menu_id'         => '',
      'echo'            => true,
      'items_wrap'      => '<ul class="%2$s">%3$s</ul>',
      'depth'           => 0,
    );
    wp_nav_menu( $defaults );
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2020-06-26
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多