WordPress主菜单在我的主题中出现两次,为什么?

时间:2014-01-24 10:09:46

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

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

正如您所看到的,我的标题中的水平主菜单出现问题。

要创建具有经典BootStra样式的WP动态主菜单,我使用 wp-bootstrap-navwalker.php 类将其插入到我的主题中,然后按照其文档阅读:{{3 }}

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

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

安德烈

2 个答案:

答案 0 :(得分:0)

在您的代码源中,我可以在您的页面中看到2个菜单。您想要摆脱的菜单是您页面中调用的第一件事。它属于这个div:

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

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

但请查看您的网页来源,您在<!DOCTYPE html>代码

之前拥有所有这些代码
<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文件中,具体取决于主题的组织方式。这是您页面中调用的第一件事。

答案 1 :(得分:0)

检查以确保您的&#34; functions.php&#34;中未列出您的wp_nav_menu函数调用。 doc以及header.php文件。

在我从&#34; functions.php&#34;中移除wp_nav_menu函数之前,我遇到了同样的问题。并且仅在我的header.php文件中包含它(以及参数)。我仍然在我的functions.php文件中执行以下操作:

add_theme_support(&#39;菜单&#39); register_nav_menu(&#39; primary&#39;,&#39; Primary Menu&#39;);

但是现在在我的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 );
?>