WordPress后台删除不需要的侧边栏菜单(含非插件方法)

引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和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插件处搜索到。

发表回复