|
wp_nav_menu() 函数是WordPress 3.0 以后添加的一个自定义导航菜单调用函数,可用来调用 register_nav_menus() 函数 注册的菜单。
语法结构
- <php wp_nav_menu(array $args = array()) ?> //实现前端调用WordPress后台添加的菜单
复制代码
参数
$args所调用菜单名称及HTML结构等
- <?php has_nav_menu('$location') ?>
- //判断是否有此菜单,其主要用途是通过该方法,实现后台的生成菜单调用。
复制代码
默认版
通过默认版设置导航菜单,则后台添加的菜单会自动生成顶部菜单,通过此方法生成的菜单的结构如下:
- <div class="menu-menu-container">
- <ul id="menu-menu" class="menu">
- <li id="menu-item-49" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-49">
- <a href="link">菜单名称</a>
- </li>
- <li id="menu-item-50" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-49">
- <a href="link">菜单名称</a>
- </li>
- </ul>
- </div>
复制代码
简单版
获取的菜单名称为nav,只列出一级菜单,样式名为navcontainer
- <?php wp_nav_menu(array(
- 'menu' => 'header_menu',
- 'depth' => 1,
- 'menu_class'=>'navcontainer'
- )
- ); ?
复制代码 >
完整版参数
- <?php wp_nav_menu( 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' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
- 'depth' => 0,
- 'walker' => ''
- )
- );?>
复制代码
theme_location 导航别名,register_nav_menu( ‘header-menu’, ‘顶部导航’ ); header-menu即为导航别名
menu 后台设置的菜单的名称
container 最外层容器标签名字如div标签 nav标签,如果为 false 时去除div标签
container_id 最外层容器id名
container_class 最外层容器class名
menu_class ul标签class值
menu_id ul标签id值
before 显示在导航a标签之前(测试无效果)
after 显示在导航a标签之后(测试无效果)
link_before 每个菜单链接文本前的文本如<a>(link_before对应的字段)网站首页</a>
link_after 每个菜单链接文本后的文本如<a>网站首页(link_before对应的字段)</a>
depth 菜单深度 0代表多级菜单,1代表一级菜单
walker 调用一个对象定义显示导航菜单
items_wrap 使用字符串替换修改ul的class(测试无效果)
根据是否登录生成不同该菜单栏
- <?php
- if (is_user_logged_in()) {
- wp_nav_menu(array( 'theme_location' => 'logged-in-menu'));
- } else {
- wp_nav_menu(array('theme_location' => 'logged-out-menu'));
- } ?>
复制代码 |
|