自定义WordPress后台管理侧栏菜单

现在大家都在使用WordPress给客户设计网站,其完美的代码构架让我们已经无法不去使用她,但设计好的网站后台肯定有许多我们用不到的管理菜单,这里就需要我们对WordPress后台管理菜单进行自定义,既做到去除WP的信息,也方便客户操作使用。下面介绍一下如何删除WP后台不用的菜单。

在functions.php文件中添加以下代码:

function remove_menus() {
global $menu;
$restricted = array(__(‘Dashboard’), __(‘Posts’), __(‘Media’), __(‘Links’), __(‘Pages’), __(‘Appearance’), __(‘Tools’), __(‘Users’), __(‘Settings’), __(‘Comments’), __(‘Plugins’));
end ($menu);
while (prev($menu)){
$value = explode(‘ ‘,$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:”” , $restricted)){unset($menu[key($menu)]);}
}
}

if ( is_admin() ) {
// 删除左侧菜单
add_action(‘admin_menu’, ‘remove_menus’);
}

自定义要去除的顶级菜单

以上代码核心部分是一个函数remove_menus(),然后通过WordPress的动作接口函数add_action来执行remove_menus函数。在remove_menus函数中,通过$restricted数组来定义需要删除哪些菜单项,以上$restricted数组提供了全部菜单项,也就是说如果你全部将以上代码不做修改地复制到functions.php,那你的WordPress后台就没有任何菜单了,你应该根据实际需要去除菜单,下面讲讲$restricted各个数组项对应的菜单:

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

例如你只想去除评论工具菜单,你只需改写以上代码第3行的$restricted数组:

$restricted = array(__(‘Comments’), __(‘Tools’));

删除不必要的子菜单

WordPress后台的顶级菜单下面还有子菜单,当然有些子菜单是用不到的,我们也可以将其删除,WordPress 3.1以后的版本只需用到一个函数remove_submenu_page( $menu_slug, $submenu_slug ),这里有两个参数,$menu_slug是子菜单所在顶级菜单的缩略名,$submenu_slug为子菜单的缩略名,那如何获得这两个缩略名呢?例如,点击顶级菜单设置,链接地址类似:
http://example/wp-admin/options-general.php

那么顶级菜单设置的缩略名为options-general.php,也就是去除http://example/wp-admin/后剩下的东西,依次类推;接着点击顶级菜单设置下面的子菜单隐私,会打开以下网址:
http://example/wp-admin/options-privacy.php

那么子菜单隐私的缩略名为options-privacy.php,好了,就这么简单,下面是实现代码:

function remove_submenu() {
// 删除”设置”下面的子菜单”隐私”
remove_submenu_page( ‘options-general.php’, ‘options-privacy.php’ );
// 删除”外观”下面的子菜单”编辑”
remove_submenu_page( ‘themes.php’, ‘theme-editor.php’ );
}
if ( is_admin() ) {
add_action(‘admin_init’,’remove_submenu’);
}

根据用户角色去除菜单

如果你想按用户角色来去除相应的侧边栏菜单,那就再做一下用户等级的判断就可以了,给第11行的add_action添加判断,改写成:

function remove_menus() {
global $menu;

// 这里$restricted设置了评论和工具菜单
$restricted = array(__(‘Comments’), __(‘Tools’));
end ($menu);
while (prev($menu)){
$value = explode(‘ ‘,$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:”” , $restricted)){unset($menu[key($menu)]);}
}
}

function remove_submenu() {
remove_submenu_page( ‘options-general.php’, ‘options-privacy.php’ );
}

global $current_user;
get_currentuserinfo();

//如果当前用户的等级小于3,那么就删除对应的菜单
if ($current_user->user_level < 3 && is_admin()) {
add_action(‘admin_menu’, ‘remove_menus’);
add_action(‘admin_init’,’remove_submenu’);
}

     在WordPress后台 – 用户那里,管理员可以查看 / 编辑用户的角色,以下是用户角色和其等级的对应关系:
  • 0 级对应 订阅者
  • 1 级对应 投稿者
  • 2 – 4 级对应 作者
  • 5 – 7 级对应 编辑
  • 8 – 10 级对应 管理员

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

使用插件实现

如果不想做码农,直接使用插件也可以完成自定义后台菜单的任务,推荐插件:Admin Menu Editor,可以点此前往WordPress官方下载,启用后到设置 – Menu Editor,就可以编辑后台的菜单了,还可以添加外链菜单,可以调整菜单顺序等等!

落花生

认准了方向,就要勇敢地走下去,十年磨一剑,我相信,只要坚持,一切都有可能。

相关日志

  1. 没有图片

    2011.01.03

    宽带连接设置详细教程

    现在计算机已经进入普通百姓家,因此上网也成了…

  2. 没有图片

    2010.06.09

    Windows7下管理员权限问题的解决办法

    曾经介绍过Windows7系统的优越性,这个…

  3. 没有图片

    2009.08.26

    我看好的个人博客平台 PivotX

    现在大家都在使用 WordPress 来做个…

  4. 没有图片

    2010.05.12

    WordPress评论统计的一大Bug

    WordPress目前来看已经很完善了,但菠…

  5. 2014.03.27

    优秀的 HTML 和 CSS 代码规范

    HTML 语法 用两个空格来代替制表符(ta…

  6. 没有图片

    2009.07.26

    几款免费的优秀的图片存放和分享的网站

    大家都知有名的图片存放和分享网站 Picas…

评论

  1. 哈秀时尚 2013.08.16 4:05下午

    很好的一个博客,我很喜欢

  2. 网赚博客 2013.05.17 3:21下午

    这个办法不错

  3. 皇家元林 2013.05.13 9:37下午

    WordPress就是强大!

  4. 企业文化标语 2013.05.10 2:54下午

    喜欢博客的风格

  5. 老外 2013.05.09 2:20下午

    我准备购买这个主题,但是我看了你这个站 发现变形了啊、、在chrome全屏下 首页幻灯片有有空白,评论这里也是变了、、在昵称 邮箱那里、、

    • 落花生 2013.08.26 1:42上午

      几乎不可能出现你所说的问题,是哪款主题?

About

马拉松运动员,沉迷于跑步;关注科技前沿,关注互联网!与跑者、程序员、设计师为伍,一起跑步健身,一起编写程序,为自由而战!