WordPress教程

代码轻松删除WordPress后台不用的功能和菜单

阿里云

管理员账号登陆后看到的侧边栏所有的菜单项,WordPress 给不同角色的用户定义了不同功能的使用权限,所以不同角色的用户后台所看到侧边栏菜单项都是不一样的。这个时候需求又来了,有些时候即使是管理员,部分菜单也是用不到了,例如用 WordPress 来建一个企业介绍性的网站,该站点根本没有添加评论功能,那么侧边栏的评论菜单是用不着的,如果让企业用户看到,他们会感到很迷惑。所以最好的办法是,根据实际情况,把不该有的侧边栏管理菜单删掉。
1、以下是删除不用的后台功能模块:

  1.     function example_remove_dashboard_widgets() {
  2.         // Globalize the metaboxes array, this holds all the widgets for wp-admin
  3.         global $wp_meta_boxes;
  4.         // 以下这一行代码将删除 "快速发布" 模块
  5.         unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
  6.         // 以下这一行代码将删除 "引入链接" 模块
  7.         unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
  8.         // 以下这一行代码将删除 "插件" 模块
  9.         unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
  10.         // 以下这一行代码将删除 "近期评论" 模块
  11.         unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
  12.         // 以下这一行代码将删除 "近期草稿" 模块
  13.         unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
  14.         // 以下这一行代码将删除 "WordPress 开发日志" 模块
  15.         unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
  16.         // 以下这一行代码将删除 "其它 WordPress 新闻" 模块
  17.         unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
  18.         // 以下这一行代码将删除 "概况" 模块
  19.         unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
  20.     }
  21.     add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
也想出现在这里?联系我们
创客主机

2、删除不用的菜单项:

  1.     function remove_menus() {
  2.         global $menu;
  3.         $restricted = array(
  4.             __('Dashboard'),
  5.             __('Posts'),
  6.             __('Media'),
  7.             __('Links'),
  8.             __('Pages'),
  9.             __('Appearance'),
  10.             __('Tools'),
  11.             __('Users'),
  12.             __('Settings'),
  13.             __('Comments'),
  14.             __('Plugins')
  15.         );
  16.         end ($menu);
  17.         while (prev($menu)){
  18.             $value = explode(' ',$menu[key($menu)][0]);
  19.             if(strpos($value[0], '<') === FALSE) {
  20.                 if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){
  21.                     unset($menu[key($menu)]);
  22.                 }
  23.             }else {
  24.             $value2 = explode('<', $value[0]);
  25.                 if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){
  26.                     unset($menu[key($menu)]);
  27.                 }
  28.             }
  29.         }
  30.     }
  31.     if (is_admin()){
  32.         // 屏蔽左侧菜单
  33.         add_action('admin_menu', 'remove_menus');
  34.     }

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

  1. __('Dashboard') : 控制板菜单
  2. __('Posts') : 文章
  3. __('Media') : 媒体
  4. __('Links') : 链接
  5. __('Pages') : 页面
  6. __('Comments') : 评论
  7. __('Appearance') : 外观
  8. __('Plugins') : 插件
  9. __('Users') : 用户
  10. __('Tools') : 工具
  11. __('Settings') : 设置

3、删除不用的主菜单下的子菜单项:

  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.         //删除子菜单
  9.         add_action('admin_init','remove_submenu');
  10.     }

4、作为企业网站可能会用到的删除项,删除后台顶部 LOGO 和页脚版权信息:

  1. //删除顶部LOGO
  2.     function annointed_admin_bar_remove() {
  3.             global $wp_admin_bar;
  4.             /* Remove their stuff */
  5.             $wp_admin_bar->remove_menu('wp-logo');
  6.     }
  7.     add_action('wp_before_admin_bar_render', 'annointed_admin_bar_remove', 0);
  8. //删除页脚版权
  9.     function change_footer_admin () {return '';}
  10.     add_filter('admin_footer_text', 'change_footer_admin', 9999);
  11.     function change_footer_version() {return '';}
  12.     add_filter( 'update_footer', 'change_footer_version', 9999);

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

  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 后台 – 用户那里,管理员可以查看 / 编辑用户的角色,以下是用户角色和其等级的对应关系:

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

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

代码轻松删除 WordPress 后台不用的功能和菜单

已有 278 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!