wordpress添加后台菜单选项及调用方法
我们在学习wordpress模板制作教程时,讲到了如何制作网站的菜单功能。今天我们讲一下如何添加wordpress后台菜单设置选项,通过后台菜单选项就可以轻松控制网站的导航菜单了。
通过wp_nav_menu是wordpress3.0版本后所支持的菜单函数,可以在网站后台外观下生成菜单功能按钮,菜单项可以是自定义链接、页面、分类目录、图片标签。
并且wordpress后台菜单支持拖动,从而改变排序和父子关系,特别强大的是可以为每个项目添加不同的样式和关系属性,这一点适用于wordpress下拉菜单。
wordpress后台菜单的生成
1、生成单个菜单
在wordpress主题函数文件functions.php添加以下代码:
if (function_exists('add_theme_support')) {
//开启导航菜单主题支持
add_theme_support('nav-menus');
//注册一个导航菜单
register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'primary' ) ) );
}
//开启导航菜单主题支持
add_theme_support('nav-menus');
//注册一个导航菜单
register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'primary' ) ) );
}
2、生成多个菜单
if ( function_exists('register_nav_menus')) {register_nav_menus(array('primary' =>'顶部菜单设置'));}
if ( function_exists('register_nav_menus')) {register_nav_menus(array('footmenu' =>'底部菜单设置'));}
if ( function_exists('register_nav_menus')) {register_nav_menus(array('footmenu' =>'底部菜单设置'));}
wordpress后台菜单调用
1、单个菜单的调用
<?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 );
//特别外层容器的标签名,默认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 );
2、多个菜单的调用
<?php wp_nav_menu( array('theme_location' =>'primary',)); ?>
<?php wp_nav_menu( array('theme_location' =>'footmenu',)); ?>
<?php wp_nav_menu( array('theme_location' =>'footmenu',)); ?>
扩展应用
根据是否登录生成不同该菜单栏(是登陆会员和游客看到不同的菜单导航)
<?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' ) );
}
?>
if ( is_user_logged_in() ) {
wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) );
} else {
wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) );
}
?>