wp_nav_menu() 函数是WordPress 3.0 以后添加的一个自定义导航菜单调用函数,可用来调用 register_nav_menus() 函数 注册的菜单。
语法结构
<php wp_nav_menu(array $args = array()) ?> //实现前端调用WordPress后台添加的菜单
参数
$args所调用菜单名称及HTML结构等
<?php has_nav_menu('$location') ?>
//判断是否有此菜单,其主要用途是通过该方法,实现后台的生成菜单调用。
默认版
<?php wp_nav_menu(); ?>
通过默认版设置导航菜单,则后台添加的菜单会自动生成顶部菜单,通过此方法生成的菜单的结构如下:
<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',
'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'));
} ?>
发表评论