上一篇教程中讲解了再自定义文章类型中 capability_type 和 capabilities 参数的用法,前面只是稍微浅显的说明了一下 WordPress 的角色、权限、用户级别。现在单独用一篇文章来详细说明。 (文章参考了 http://justintadlock.com/archives/2009/08/30/users-roles-and-capabilities-in-WordPress 的内容)
用户
用户就是在你网站注册的人,他在你的网站有一个账户,用户并不是访问你网站的访客,就算他在网站上留下了内容 (比如发表评论) 。
用户是通过角色-roles 来定义的,角色决定用户在网站中的位置,比如一些论坛,普通用户只能在前台发表帖子,而版主,可以进入版块管理页面。
角色-roles
在 WordPress 后台设置中我们可以很直观的看到,WordPress 的用户角色有
- Administrator 管理员
- Editor 编辑
- Author 作者
- Contributor 贡献者
- Subscriber 订阅者
仅仅看到这个,我们还搞不明白角色的具体意义,下面我们具体看看角色到底是什么。
讲接下来的内容前,我们需要注意的有两点:
- 角色是没有分层级的
- 如果角色离开了权限,是没有意义的
很多人看到这,都会反驳第一个观点,你可能要说 「管理员-administrator 是最高层级的角色,它的层级就比订阅者-subscriber 要高」 。不过这是不完全正确的,没有弄清楚角色-roles 是怎样工作的。默认的 administrator 具有更多权限,如果你愿意,你可以给订阅者 subscriber 更多的权限,要超过 administrator 哦。
所以,角色-roles 是没有级别之分的。前面的教程中说法是不严谨的,但是也有更容易理解的效果。
权限-capabilities
权限是关于系统是怎样工作的,权限也可以说是许可,也就是许可 roles 能干什么,不能干什么。
管理员具有默认的所有权限,比如:
edit_themes
. 你能编辑主题,不是因为你是管理员,而是因为你的 role(administrator 具有 edit_themes 的权限) 。如果你把角色 administrator 的 edit_themes 去掉,就算你是管理员,你也不能编辑主题。
总结
- 用户是在你的网站注册的人
- 每个用户都有一个角色
- 每个角色都被赋予了一些权限