f
WordPress后台删除不需要的侧边栏菜单(含非插件方法)
WordPress后台删除不需要的侧边栏菜单(含非插件方法)
二呆 7年前 (2017-09-14) wordpress开发  #wordpress# 
浏览:9002

引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和D8)均来自大前端,追求完美的同时有一丝小懒,主题就不换了,D8主题用起来挺好。

站长们在创建自己的网站时,根据网站内容的不同,会有不同的网站形式,后台菜单也会不一样,所以有必要删除wordpress后台不需要的侧边栏菜单,以至根据用户级别权限显示不同的菜单,下面就做一下介绍。

一、删除wordpress后台不需要的顶级菜单

  1. //删除wordpress后台不需要的顶级菜单
  2. function remove_menus() {
  3.     global $menu;
  4.     $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
  5.     end ($menu);
  6.     while (prev($menu)){
  7.         $value = explode(' ',$menu[key($menu)][0]);
  8.         if(strpos($value[0], '<') === FALSE) {
  9.             if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){
  10.                 unset($menu[key($menu)]);
  11.             }
  12.         }
  13.         else {
  14.             $value2 = explode('<', $value[0]);
  15.             if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){
  16.                 unset($menu[key($menu)]);
  17.             }
  18.         }
  19.     }
  20. }
  21. if ( is_admin() ) {
  22.     add_action('admin_menu', 'remove_menus');
  23. }

下面介绍一下以上第4行中数组的含义:

__('Dashboard') : 控制板菜单
__('Posts') : 文章
__('Media') : 媒体
__('Links') : 链接
__('Pages') : 页面
__('Comments') : 评论
__('Appearance') : 外观
__('Plugins') : 插件
__('Users') : 用户
__('Tools') : 工具
__('Settings') : 设置

二、删除wordpress后台不需要的二级子菜单

  1. function remove_submenu() {
  2.     // 删除"设置"下面的子菜单"隐私"
  3.     remove_submenu_page( 'options-general.php', 'options-privacy.php' );
  4.     // 删除"外观"下面的子菜单"编辑"
  5.     remove_submenu_page( 'themes.php', 'theme-editor.php' );
  6. }
  7. if ( is_admin() ) {
  8.     add_action('admin_init','remove_submenu');
  9. }

三、根据用户角色去除菜单

  1. function remove_menus() {
  2.     global $menu;
  3.     // 这里$restricted设置了评论和工具菜单
  4.     $restricted = array(__('Comments'), __('Tools'));
  5.     end ($menu);
  6.     while (prev($menu)){
  7.         $value = explode(' ',$menu[key($menu)][0]);
  8.         if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
  9.     }
  10. }
  11. function remove_submenu() {
  12.     remove_submenu_page( 'options-general.php', 'options-privacy.php' );
  13. }
  14. global $current_user;
  15. get_currentuserinfo();
  16. //如果当前用户的等级小于3,那么就删除对应的菜单
  17. if ($current_user->user_level < 3 && is_admin()) {
  18.     add_action('admin_menu', 'remove_menus');
  19.     add_action('admin_init','remove_submenu');
  20. }

在WordPress后台 – 用户那里,管理员可以查看 / 编辑用户的角色,以下是用户角色和其等级的对应关系:

0 级对应 订阅者
1 级对应 投稿者
2 – 4 级对应 作者
5 – 7 级对应 编辑
8 – 10 级对应 管理员

WordPress 3.0 之后将逐渐弃用用户数字等级,推荐使用户权限,可以用函数current_user_can()来判断用户权限。

四、使用Admin Menu Editor插件省去复杂的代码而超简单的删除后台菜单,该插件可以在wordpress插件处搜索到。

推荐阅读
  • 以下仅供学习使用以及纪念之用,已过时,将不再继续鼓捣,请知悉。因能力有限,将它们弄出来后修改时都得调试半天,日后随缘上香。任何事物的成长都需要沉淀,不然就会成以下这些一样的结果。继续在另一个条漫长的转型不归路上走着…走着……以下仍然可以站内搜索相关简介:001、DNSP...
  • 插件截图:插件简介:TleUCenterForWordpress是一个用户中心插件,放置于前台网页的左下角,供用户登陆/管理只用,使用邮箱验证码登陆,登陆之后在使用TleWeiboForWordPressV2.0微博主题的情况下,可以显示微博列表、文章列表、评论列表,也可...
  • 插件截图:插件介绍:TleLiveCtrlForWordpress是一个基于Kplayer的直播遥控器插件,也可以叫做KplayerForWordPress插件,支持多平台直播推流,进行积分点播、查询、跳过等功能,支持Payjs微信、支付宝支付,是一个可以24小时直播推流的...
  • 主题截图:主题简介:一款Wordpress版本的TleWeiboForWordPress电脑/手机版微博主题使用方法:将本主题里的所有文件放在您网站目录的wp-content/themes内,注意文件夹名字必须为TleWeibo或TleWeiboWap。...
  • 插件简介:即时聊天插件为WordPress站长及用户提供即时聊天功能,前台环信即时聊天需要配合个人中心插件,暂不支持手机端。在支持手机端的路上,因为万恶的360网站卫士最近访问困难,导致停留了N久,最后啥也没动,就升级至V1.0.10了,不过仅仅支持了简单的手机端版本。使...

o p
Ú
>