Jan292013
WordPress博客根据不同的用户权限显示不同的菜单
在WordPress博客中如何对不同权限的用户显示不同的菜单呢?由于Wordpress源码的菜单函数 wp_nav_menu() 的 wp_nav_menu_args 恰是处理函数参数的,所以博主们完全可以利用这一点实现对不同权限的用户显示不同的菜单……
当然你的主题需要有多个不同的菜单,再记录下这些菜单的ID,之后在function.php函数文件里添加下面的代码:
add_filter( 'wp_nav_menu_args', 'child_nav_menu_args' ); /** * Modifies the Navigation Menu based on current user capabilities * * @uses gbootstrap_nav_args() Sets Genesis Bootstrap Navigation Args for wp_nav_menu(). * @param array $args Arguments for wp_nav_menu() * @return array $args Modified Arguments for wp_nav_menu() * @since 1.0.0 */ function child_nav_menu_args( $args ) { locations. if ( '' != $args['theme_location'] ) return; //这里分别对应填上对应的用户权限及对应的菜单id, 也可以填写菜单名或是菜单slug $menus = array( 'administrator' => 3, 'editor' => 4, 'author' => 7, 'contributor' => 8, 'subscriber' => 9, ); $current_user = wp_get_current_user(); if ( $current_user->has_cap( 'manage_options' ) ) $args['menu'] = $menus['administrator']; if ( $current_user->has_cap( 'edit_others_posts' ) ) $args['menu'] = $menus['editor']; if ( $current_user->has_cap( 'publish_posts' ) ) $args['menu'] = $menus['author']; if ( $current_user->has_cap( 'edit_posts' ) ) $args['menu'] = $menus['contributor']; if ( $current_user->has_cap( 'read' ) ) $args['menu'] = $menus['subscriber']; return $args; }
本文由垃圾站编辑整理,转载请注明原文地址:http://www.lajiz.cn/1354.html
WordPress博客根据不同的用户权限显示不同的菜单:目前有11 条留言
发表评论

站长 求个代码
2013-03-21 下午 7:43指定某个页面 游客可以发视频或者使用HTML
ps:花七七的站很多人留言的啊
有空多去LOC逛逛啊
网站就自己一个人更新,其实这些太高级的东东不想折腾!
2013-01-31 上午 9:58很多站长都是一个人做网站,有的做几十个甚至更多的网站!
2013-01-31 下午 12:39你指的是后台管理菜单吗?
2013-01-29 下午 10:32指的是博客上方顶部菜单栏。
2013-01-29 下午 11:51都是高人!WP被你们折腾的越来越牛X了!支持!!
2013-01-29 下午 2:56哈哈,欢迎常来垃圾站博客逛逛!
2013-01-29 下午 9:02你说刷新一下换一个菜单还有看头, 针对用户的就木必要了·~~
2013-01-29 下午 2:02这个刷新一下随机显示一个菜单应该也可以实现……
2013-01-29 下午 9:02囧,整个站就我一个人……
2013-01-29 下午 12:57我这里也是,不过有个菜单是登陆后才显示
2013-01-29 下午 8:21