WordPress支持多种用户角色,包括管理员、编辑、作者、投稿者和订阅者等,你还可以自定义一些角色,这个不在本文讨论范围。当你的网站想让不同等级用户的账户后台显示不同的侧边栏菜单项时就需要对其进行定制修改。我们可以根据不同的用户角色显示他能查看的不同菜单项,这样就便于管理不同等级用户的权限。本文将介绍如何根据不同的用户角色显示后台侧边栏菜单项的方法。
1、根据不同用户角色显示不同的菜单项:
/*
根据用户角色移除菜单项
*/
function wpzhinan_remove_menu_page(){
remove_submenu_page( 'edit.php', 'post-new.php' ); //移除"写文章"子菜单
remove_menu_page('tools.php');
remove_menu_page('edit-comments.php');
}
if(!current_user_can('subscriber') && is_admin()){
add_action('admin_menu', 'wpzhinan_remove_menu_page');
}
将以上代码插入主题fuction.php即可,以上代码仅以实例说明用法。上述代码的意思是当用户级别为订阅者时将不显示“写文章”、“工具”和“评论”等侧边栏菜单项。如需添加多种不同的角色侧边栏菜单限制,除了要修改需移除的菜单项外,还需注意修改function名称,不能使用相同的function名称,否则将报错噢!
你可以根据需要替换成你需要作限制的用户角色,也可修改需要限制的菜单项。WordPress默认的5种角色名:administrator、editor、author、contributor、subscriber。可用这些角色名替换上述示例代码中的subscriber订阅者角色。
2、如需所有角色不显示一些后台菜单项,可以用如下方法:
/*
所有角色不显示一些后台菜单项
*/
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');
}
以上代码中会将所有侧边栏默认菜单删除,主要是为了告诉您有哪些菜单项是可被删除、怎样删除,你可以根据需要需要保留的菜单项删除以上代码中的逗号分隔中的代码即可。需将以上代码插入主题fuction.php。