乌徒帮技术范儿WordPressWordPress开发 › wordpress中对已经登录用户的权限、管理级别的判断

wordpress中对已经登录用户的权限、管理级别的判断

分类:WordPress开发

在wordpress后台中,我们可以看到用户有“订阅者、投稿者、作者、编辑、管理员”五个组别,他们的权限不同能进行的操作也自然不同,我们在对wordpress用户的权限进行判断的时候,最主要的依据及这五个组别,那么怎么判断当前登录用户是属于什么组别,拥有什么权限呢?

1、用户组别权限一览表:

从上表中,我们可以发现对应的用户组所拥有的权限。那么怎么去判断用户的权限呢?或许你已经发现了,就是user_level,在数据库中,这个值被放在usermeta表中。这个值可以用get_userdata(get_current_user_id())或get_usermeta(get_current_user_id()),将他们的值放在$current_user中,再$current_user->user_level即可获得。

2、current_user_can()函数来判断用户是否有某权限

该函数参数即为上表中的某个字段,例如current_user_can('upload files')来判断用户是否有上传文件的权限。

那么怎么判断这个用户是什么权限呢,把参数换为level_10即可,对应的权限表如下:

看如下图表

Capability Administrator Editor Author Contributor Subscriber
level_10
level_9
level_8
level_7
level_6
level_5
level_4
level_3
level_2
level_1
level_0

这个图表展示了WordPress各个用户组所对应的级别,那么我们需要来判断是否为管理员,也就是Administrator。

用法如下:

if(current_user_can(‘level_10’)){
//加入符合管理员后需要添加的内容
}

这样,你基本能解决wordpress中所有用户权限的问题了。

可能需要用到的函数:

get_userdata()

get_current_user_id()//获取当前登录用户的ID

get_user_meta()

wp_get_current_user()

已有2条评论 快速评论
  1. 管理员 #2698楼 回复给@2697楼 2012/12/25 18:16:40 回复

    是的,因此这个函数还能在LOOP循环中做一些条件判断!!

  2. Arnie #2697楼 2012/12/25 17:27:27 回复

    current_user_can() 还可以用来判断用户对指定的文章是否有编辑权限。
    例如:current_user_can(‘edit_post’,$post->ID) 判断用户是否可编辑当前文章。

填写个人信息,赶快回复吧!