上一篇教程中讲解了再自定义文章类型中 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 订阅者

仅仅看到这个,我们还搞不明白角色的具体意义,下面我们具体看看角色到底是什么。
讲接下来的内容前,我们需要注意的有两点:

  1. 角色是没有分层级的
  2. 如果角色离开了权限,是没有意义的

很多人看到这,都会反驳第一个观点,你可能要说 「管理员-administrator 是最高层级的角色,它的层级就比订阅者-subscriber 要高」 。不过这是不完全正确的,没有弄清楚角色-roles 是怎样工作的。默认的 administrator 具有更多权限,如果你愿意,你可以给订阅者 subscriber 更多的权限,要超过 administrator 哦。

所以,角色-roles 是没有级别之分的。前面的教程中说法是不严谨的,但是也有更容易理解的效果。

权限-capabilities

权限是关于系统是怎样工作的,权限也可以说是许可,也就是许可 roles 能干什么,不能干什么。

管理员具有默认的所有权限,比如:

edit_themes. 你能编辑主题,不是因为你是管理员,而是因为你的 role(administrator 具有 edit_themes 的权限) 。如果你把角色 administrator 的 edit_themes 去掉,就算你是管理员,你也不能编辑主题。

 

总结

  • 用户是在你的网站注册的人
  • 每个用户都有一个角色
  • 每个角色都被赋予了一些权限