去除WordPress管理面板不想要的菜单项

WordPress 后台控制面板的菜单项目比较多,而实际上有些是我们一部份博主或用户用不到的,根据各人不同需要,可以将它们全部去除,也可以只去除其中的几项,怎么做呢?首先,撇开插件不说(对于 WordPress 来说,几乎所有你想要的功能都可以通过插件的方式来实现),这里只讨论“非插件”的方法。我们可以通过在 functions.php 文件中添加一段去除菜单项的功能函数来实现。

在当前主题的 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)]);
}
}
}
// 去除边栏菜单
add_action('admin_menu', 'remove_menus');

上面代码中的 $restricted 数组提供了全部菜单项,如果你全部将以上代码原封不动地复制到 functions.php 文件中,那么你的 WordPress 后台就没有任何菜单了,所以,你应该根据实际需要只去除其中不必要的菜单项。

$restricted 各个数组项所对应的菜单中英对照:

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

如果你想按不同用户角色来去除相应的边栏菜单,可以添加一个用户等级的判断。我们可以这样做:给上面代码中提到的 add_action 添加一个判断语句,将它改为如下:

function remove_menus() {   
global $menu;   
// 这里的$restricted设定了外观和媒体两个菜单项
$restricted = array(__('Appearance'), __('Media'));   
end ($menu);   
while (prev($menu)){  
$value = explode(' ',$menu[key($menu)][0]);   
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){
unset($menu[key($menu)]);
}   
}   
}  
global $current_user;
get_currentuserinfo();   
//如果当前用户的等级小于4,那么就删除与之相应的菜单项   
if ($current_user->user_level < 4)   {       
add_action('admin_menu', 'remove_menus');   
}

附:用户角色及其等级的对应关系如下:

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

代码来源:hungred