这是有问题的导航 http://firehouseservices.com/a3k/
我正在尝试将Bootstrap 3导航到我的WordPress中。我的问题是:
这是我的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的任何帮助。
答案 0 :(得分:1)
我发现这个问题在Google中排名很高,并且对于尚未提供答案感到惊讶。
这里的问题是菜单按钮的目标是页面上的错误元素。当它应该定位ID data-target=".navbar-top-collapse"
时,它会使用#navbarCollapse
。
修正第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移动友好的性质,并确保导航员将带有儿童的项目取消链接。这使他们能够打开触摸&#39;事件而不仅仅是悬停。
第3点:更改崩溃大小涉及为Bootstrap的核心CSS制作数十个(可能是数百个)CSS覆盖。手动完成这是一个彻头彻尾的痛苦。如果你使用LESS,那么你可以简单地修改@grid-float-breakpoint
变量。如果需要,您也可以通过Bootstrap Customizer来完成。
答案 1 :(得分:0)
我使用以下方法解决了这个问题:
添加脚本
(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);
从wp_bootstrap_navwalker.php文件中的&& $depth === 0
行中删除if ( $args->has_children && $depth === 0 )