wordpress菜单函数wp_nav_menu的使用

wp_nav_menu是wordpress3.0版本后所支持的菜单函数,可以在网站后台外观下生成菜单功能按钮,菜单项可以是自定义链接、页面、分类目录、图片标签。并且支持拖动,从而改变排序和父子关系,最强大的是可以为每个项目添加不同的样式和关系属性。

使用菜单可以使导航的调用变得非常简单和方便,使用方法如下:
1、在wordpress主题函数文件functions.php添加以下代码:

if (function_exists(‘add_theme_support’)) {   
//开启导航菜单主题支持   
add_theme_support(‘nav-menus’);   
//注册一个导航菜单   
register_nav_menus( array( ‘primary’ => __( ‘Primary Navigation’, ‘primary’ ) ) );   
}  

2、添加后,然后在wordpress后台刷新,就可以在外观下多出一个菜单按钮,然后使用以下代码在主题需要展示菜单的地方即可:

<?php  wp_nav_menu($args);?> 

注:其中的$args官方提供的很多的参数,可以根据自己的需要自由选择。

$menu_args = array(   
//最外层容器的标签名,默认div   
‘container’ => ‘div’,   
//最外层容器的class名   
‘container_class’ => ‘mainNavBlock’,   
//最外层容器的id名   
‘container_id’ => ‘menu’,   
//导航菜单ul标签的class名   
‘menu_class’ => ‘mainNav’,   
//导航菜单ul标签的id名   
‘menu_id’ => “nav”,   
//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false   
‘echo‘ => true,   
//备用的导航菜单函数,用于没有在后台设置导航时调用   
‘fallback_cb’ => ‘the_main_nav’,   
//显示在导航a标签之前   
‘before’ => ‘<p>’,   
//显示在导航a标签之后   
‘after’ => ‘</p>’,   
//显示在导航链接名之前   
‘link_before’ => ‘<em>’,   
//显示在导航链接名之后   
‘link_after’ => ‘</em>’,   
//显示的菜单层数,默认0,0是显示所有层   
‘depth’ => 0,   
//调用一个对象定义显示导航菜单   
‘walker’ => new Walker_Nav_Menu(),   
//指定显示的导航名,如果没有设置,则显示第一个   
‘theme_location’ => ‘primary’,   
);   
//打印导航菜单  
wp_nav_menu( $menu_args );   

扩展应用案例①:
多菜单调用函数支持:

  1. if ( function_exists(‘register_nav_menus’)) {register_nav_menus(array(‘primary’ =>’顶部菜单设置’));}
  2. if ( function_exists(‘register_nav_menus’)) {register_nav_menus(array(‘footmenu’ =>’底部菜单设置’));}

调用代码:

  1. <?php wp_nav_menu( array(‘theme_location’ =>’primary’,)); ?>
  2. <?php wp_nav_menu( array(‘theme_location’ =>’footmenu’,)); ?>

扩展应用案例②:
根据是否登录生成不同该菜单栏(是登陆会员和游客看到不同的菜单导航)

  1. <?php
  2. if ( is_user_logged_in() ) {
  3. wp_nav_menu( array( ‘theme_location’ => ‘logged-in-menu’ ) );
  4. else {
  5. wp_nav_menu( array( ‘theme_location’ => ‘logged-out-menu’ ) );
  6. }
  7. ?>