最近tennfy在用Bootstrap重写博客主题,由于之前没有用过Bootstrap,所以也是花了不少功夫来了解Bootstrap。Bootstrap提供了很完整的css样式布局,对于有一定前端基础的人来说真的非常方便。
利用Bootstrap做wordpress主题遇到的第一个问题就是输出Bootstrap导航栏结构的菜单,这样才能够利用Bootstrap提供的样式进行菜单的显示。本文就来介绍下如何实现wordpress输出Bootstrap的菜单结构。
Bootstrap导航栏结构
常见的Bootstrap导航栏为如下形式:
defaultnavbar_demo
其HTML结构为:
自定义wp_nav_menu函数
熟悉wordpress的朋友都知道,wordpress一般采用wp_nav_menu函数输出菜单,而通过该函数输出的菜单是得不到上述的html结构的。不过值得高兴的是,wp_nav_menu函数支持自定义输出html结构。
wordpress中wp_nav_menu函数的参数如下所示:
$defaults = array(
'theme_location' => '',
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '
其中,我们需要修改的就是walker参数。
输出Bootstrap导航栏结构菜单
在header.php中,通过如下代码输出导航栏菜单:
上面代码中walker参数的值是一个类,所以接下来你需要添加这个类,在主题的functions.php文件中添加下面代码:
/**
* Class Name: wp_bootstrap_navwalker
* GitHub URI: https://github.com/twittem/wp-bootstrap-navwalker
* Description: A custom WordPress nav walker class to implement the Bootstrap 3 navigation style in a custom theme using the WordPress built in menu manager.
* Version: 2.0.4
* Author: Edward McIntyre - @twittem
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
*/
class wp_bootstrap_navwalker extends Walker_Nav_Menu {
/**
* @see Walker::start_lvl()
* @since 3.0.0
*
* @param string $output Passed by reference. Used to append additional content.
* @param int $depth Depth of page. Used for padding.
*/
public function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat( "t", $depth );
$output .= "n$indent
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级