天天看点

WordPress用户角色与用户能力/权限

WordPress用户角色(user roles)是WP或者其它插件增加的,可以让网站管理员(网站管理员也是一种角色)来方便的管理用户的权限/能力(Capabilities,一般情况下,一种角色不止有一种能力,所以用复数),使用免费的插件,可以方便的管理每种角色的能力,简单的理解是:角色具有某些能力,是某些能力的代称。

WordPress用户角色与用户能力/权限(Roles and Capabilities)系统是自Wordpress2.0起被逐步完善的。

仅指Wordpress安装时就有的几种用户角色(所列为角色名称):

Subscriber:订阅者

Contributor :投稿者

Author :作者

Editor :编辑

Administrator :管理员

此外,如果启用了Wordpress多站,将会多出一种用户角色:Super Admin(超级管理员)。

WordPress在安装完毕之后,会为各个用户角色分配默认的用户能力/权限,各个用户能力/权限的名称(ID)以及其含义此不赘述。

广泛,可以限定用户权限,这是明摆的事情,例如:用在插件或者主题的设置后台,以限制可看到菜单项并进行某些操作的用户组;限制可以发表/修改/删除自己的文章(如果有权限发表的话)/别人的文章等等。

有时候在输出某些内容或者存储某些内容之前,有必要检查下当前已登录用户的权限,这时候就需要进行权限检查了:

还可以在循环中检查当前用户是否有对某个对象的操作能力:

还可以对文章(广义上的文章,泛指各种文章类型的文章)的作者的权限进行检查:

比如,有某种权限了,就直接发表,否则就置为草稿或者待审状态等。

在Wordpress中,只要角色之间的能力互不冲突(一般情况下不会发生这种事情),同一个用户可以同时有多种角色。

在获取用户对象之后,可以 为某个用户添加一种角色:

如果想限定某用户只有一种角色,可以用:

移除用户的某个角色:

用户的能力/权限操作

注意:进行这些操作的时候,最后声明下全局变量<code>global $wp_roles;</code>,然后以<code>$wp_roles-&gt;add_role();</code>

、 <code>$wp_roles-&gt;remove_role();</code>的方式进行操作,特别是在插件中使用时。

示例:

删除用户角色

如何联系我:【万里虎】www.bravetiger.cn

【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起)

【博客】http://www.cnblogs.com/kenshinobiy/