WordPress自定义菜单方法wp_nav_menu()用法

wp_nav_menu()其主要用途是通过该方法,实现后台的生成菜单调用。自由创建各种链接,并且可以将这些自定义菜单嵌入到主题的任意位置.

1、激活主题WordPress3.0+自定义菜单功能

在functions.php文件中加入

if(function_exists('register_nav_menus')){ 
    register_nav_menus( array( 'header-menu' => __( '导航自定义菜单' ), 
                               'footer-menu' => __( '页角自定义菜单' ), 
                               'sider-menu' => __('侧边栏菜单') ) );
 }

2、调用方法,在需要调用菜单的地方添加:

<?php wp_nav_menu(
array(
'theme_location'  => '' //可选指定显示的导航名,如果没有设置,则显示第一个(可选)
'menu'            => 'header-menu',//期望显示的菜单(可选)
'container'       => 'nav', //最外层容器标签名(可选)
'container_class' => 'primary', //最外层容器class名(可选)
'container_id'    => '',//最外层容器id值(可选)
'menu_class'      => 'sf-menu', //ul标签class(可选)
'menu_id'         => 'topnav',//ul标签id(可选)
'echo'            => true,//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false
'fallback_cb'     => 'wp_page_menu',//备用的导航菜单函数,用于没有在后台设置导航时调用(可选)
'before'          => '',//显示在导航a标签之前(可选)
'after'           => '',//显示在导航a标签之后(可选)
'link_before'     => '',//显示在导航链接名之后(可选)
'link_after'      => '',//显示在导航链接名之前(可选)
'items_wrap'      => '<ul id="%1$s">%3$s</ul>',
'depth'           => 0,////显示的菜单层数,默认0,0是显示所有层(可选)
'walker'          => ''// //调用一个对象定义显示导航菜单 ));(可选)
?>

3、是否登录生成不同该菜单栏

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

4、移除菜单

<?php
function my_wp_nav_menu_args( $args = '' )
{
	$args['container'] = false;
	return $args;
} // function
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
?>

或者

<?php wp_nav_menu( array( 'container' => '' ) ); ?>

5、生成的菜单代码风格: