wordpress不同角色显示不同的菜单栏

如果使用熟悉,wordpress的菜单栏设计在开发中是一个很方便的工具。这篇文详细讲wordpress中如何对不同角色显示不同的菜单栏。

1.注册不同的菜单,在functions.php中注册菜单

//注册菜单
if(!function_exists('specs_register_nav_menu')){
	function specs_register_nav_menu() {
		register_nav_menus(
			array(
				'primary'	=>	'头部主菜单', // Register the Primary menu
				// Copy and paste the line above right here if you want to make another menu,
				// just change the 'primary' to another name
                                'second'   =>  '头部学生菜单',
			)
		);
	}
}
add_action( 'after_setup_theme', 'specs_register_nav_menu' );

2.wordpress后台设置

wordpress 中进入外观》菜单,可以看到菜单编辑

红色椭圆部分你可以选择对哪个菜单进行编辑,当然你也可以创建新的菜单进行编辑。编辑的方法就不说了,拖来拖去而已。编辑完后在下面的红色框位置勾选你所编辑的菜单要放入你刚才代码注册的菜单中的哪个。当时就是在这个问题卡住 了,注册了的菜单与编辑的菜单有什么关系,菜单设置又是起到什么作用。思考了挺久之后得出一结论,这里提供参考,不保证完全正确。

思考:注册的菜单和编辑的菜单有什么关系?菜单设置又是干什么的?答:其实注册的菜单可以比喻为向wordpress注册了两个容器,而你编辑的两个菜单可以说是你做好的两个东西,那么菜单设置就是将你编辑的两个东西放入你注册的两个容器中。当然,编辑的菜单要放入你注册的哪个容器就看你怎么勾选了。这里我将首页这个菜单放入头部主菜单这个容器中,因此椭圆红色框中会出现    首页(头部主菜单)  即wordpress提醒我首页这个菜单已经放入头部主菜单中了。新手领悟,不正确希望能得到纠正。

3.引用

在设置好菜单后,就要在header.php中判断是什么角色然后进行菜单选择

首先在functions.php中写好角色判断函数:

//判断是否是subscriber,如果需要判断其他角色请自行添加
function check_for_user(){
	global $current_user;
	$user_roles = $current_user->roles;
	if (!strcmp($user_roles[0], "subscriber")) {
		return 1;
	}
}
然后在header.php中进行菜单选择:

if (check_for_user()) {
                       if ( has_nav_menu( 'second' ) ) {
                        wp_nav_menu( array('theme_location' => 'second','container' => '','container_class' => '','container_id' => '','menu_class' => 'nav navbar-nav','items_wrap' => '<ul class="%2$s">%3$s</ul>','walker' => new Bootstrap_Walker )); //学生主菜单
                        }else{
                        echo '<ul class="nav navbar-nav">';
                        //wp_list_pages('sort_column=menu_order&title_li=');
                        wp_list_categories('sort_column=menu_order&title_li=');
                        echo '</ul>';
                        }
                    }else{
                        if ( has_nav_menu( 'primary' ) ) {
                        wp_nav_menu( array('theme_location' => 'primary','container' => '','container_class' => '','container_id' => '','menu_class' => 'nav navbar-nav','items_wrap' => '<ul class="%2$s">%3$s</ul>','walker' => new Bootstrap_Walker )); //教师、管理员主菜单
                        }else{
                        echo '<ul class="nav navbar-nav">';
                        //wp_list_pages('sort_column=menu_order&title_li=');
                        wp_list_categories('sort_column=menu_order&title_li=');
                        echo '</ul>';
                        }
                    }

如果还有什么其他问题就到谷歌上看看吧,新手一般遇到的问题谷歌都解决得了!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值