|  | 
 
| 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'));
} ?>
 | 
 |