【问题标题】:Problems with WordPress Bootstrap 3 Walker NavWordPress Bootstrap 3 Walker Nav 的问题
【发布时间】:2014-03-28 19:20:53
【问题描述】:

这是有问题的导航 http://firehouseservices.com/a3k/

我正在尝试在我的 WordPress 中实现 Bootstrap 3 导航。我的问题是:

  1. 当导航折叠并显示“菜单”按钮以展开菜单时,该按钮似乎没有任何作用。它不会打开折叠的菜单。
  2. 检查第一个链接“自动营销”它有一个下拉项,下拉工作正常,子菜单项上的链接工作正常,但自动营销的主链接只显示“#”链接,所以它没有生成正确的链接。
  3. 我可以在哪里设置菜单以比现在更小的像素范围折叠?

这是我在 header.php 中拉入菜单的代码:

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
                <span class="sr-only">Toggle navigation</span>Menu
            </button>

        </div>
       <div id="navbarCollapse" class="collapse navbar-collapse">
        <?php
            wp_nav_menu( array(
                'menu'       => 'top_menu',
                'depth'      => 2,
                'container'  => false,
                'menu_class' => 'nav navbar-nav',
                'fallback_cb' => 'wp_page_menu',
                'walker' => new wp_bootstrap_navwalker())
            );
        ?>
        </div>
    </div>
</nav>

这是我的functions.php代码:

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

// Add the 'top_menu' location in a theme setup function.
function bootpress_setup() {
    register_nav_menus(
        array(
            'top_menu' => 'Top Menu'
        )
    );
}

// Add setup function to the 'after_setup_theme' hook
add_action( 'after_setup_theme', 'bootpress_setup' );

我还在 header.php 中使用了一个脚本来使下拉菜单在悬停时工作

 <script>
 $(function() {


$('ul.nav li.dropdown').hover(function() {
$('.dropdown-menu', this).fadeIn('fast');
}, function() {
$('.dropdown-menu', this).fadeOut('fast');
});

});
</script>

我在我的标题中拉入 jquery 和 bootstrap.js:

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script src="<?php $blog_title = get_bloginfo('template_directory'); ?     
>/js/bootstrap.min.js"></script>

任何帮助解决我在此请求顶部的问题 1-3 将不胜感激。

【问题讨论】:

    标签: wordpress twitter-bootstrap navigation


    【解决方案1】:

    我发现这个问题在 Google 中排名很高,很惊讶尚未提供答案。

    这里的问题是菜单按钮定位到页面上的错误元素。当它应该以 ID #navbarCollapse 为目标时,它正在使用 data-target=".navbar-top-collapse"。

    修正点 1 的代码如下:

    <nav class="navbar navbar-default" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
                    <span class="sr-only">Toggle navigation</span>Menu
                </button>
    
            </div>
            <div id="navbarCollapse" class="collapse navbar-collapse">
                <?php
                    wp_nav_menu( array(
                        'menu'       => 'top_menu',
                        'depth'      => 2,
                        'container'  => false,
                        'menu_class' => 'nav navbar-nav',
                        'fallback_cb' => 'wp_page_menu',
                        'walker' => new wp_bootstrap_navwalker())
                    );
                ?>
            </div>
        </div>
    </nav>
    

    关于第 2 点:这是预期的行为。也打开下拉菜单的可点击链接不适合移动设备。 Ed McIntyre - 您在此主题中使用的 bootstrap navwalker 类的创建者,有意识地决定坚持 Bootstraps 移动友好的性质,并确保 navwalker 制作的物品与儿童无关。这使他们能够打开“触摸”事件的下拉菜单,而不仅仅是悬停。

    第 3 点:更改折叠大小涉及对 Bootstrap 的核心 CSS 进行数十个(可能数百个)CSS 覆盖。手动操作是一件非常痛苦的事情。如果您使用 LESS,那么您可以简单地修改 @grid-float-breakpoint 变量。如果需要,您也可以通过Bootstrap Customizer 进行操作。

    【讨论】:

      【解决方案2】:

      我用下面的方法解决了这个问题:

      1. 添加脚本

        (function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); }); }); })(jQuery);
        
      2. 从 wp_bootstrap_navwalker.php 文件中的 if ( $args-&gt;has_children &amp;&amp; $depth === 0 ) 这一行中删除 &amp;&amp; $depth === 0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 2017-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多