wordpress的角色-roles\权限-Capabilities\用户层级-User Levels

上一篇教程中讲解了再自定义文章类型中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去掉,就算你是管理员,你也不能编辑主题。

 

总结

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

 

已有5条评论

  1. pcfox.com.cn
    pcfox.com.cn : 回复

    如何获取特定用户组的所有用户呢?如果从数据库中直接获取,不知道是否可行!我是在数据库中直接select某个组的用户!

  2. 多梦
    多梦 : 回复

    如果我要给某一个用户组添加一个权限,那怎么做?

    • 阿树工作室
      阿树工作室 回复多梦: 回复

      给某个角色赋予某项权限使用函数add_cap 

      移除某个觉得的某权限使用函数remove_cap

  3. Arch!tect
    Arch!tect : 回复

    偶然飘过。。。赞一下这个站的风格与设计,(博文质量貌似之前已经赞过了~)可能加一个留言区会更热闹点。

    • 阿树工作室
      阿树工作室 回复Arch!tect: 回复

      没位置了。。

发表评论