WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 数码解说
    • 生活趣事
    • 生活日记
  • 全球科技
    • 新浪博客
    • A5资讯
    • 环球网新闻
  • 编程教学
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
  • 专题
  • 基友
  • 隐私
  • 云优化
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君

WordPress的用户角色和能力的权限

夏柔4月 29, 2020

要成为WordPress网站的合格管理员,您必须了解一些有关用户角色和能力的知识:用户是什么,如何创建新用户以及要为用户做什么。涵盖这些内容有很多价值,但是我们今天的目标是真正了解整个WordPress用户管理和角色系统在概念上是如何工作的,并涵盖几种最重要的修改方法。

WordPress的用户角色和能力的权限-WordPress极简博客

WordPress用户介绍

每个可以登录WordPress网站的帐户都代表一个“用户”,每个WordPress用户都有一个“角色”。

每个可以登录WordPress网站的帐户都代表一个“用户”。也就是说,每个“登录”(一个用户名和密码对)都是WordPress中的一个凭据单位。这些用户帐户是帖子、页面、媒体等的作者。作为WordPress网站的管理员,您可以通过管理侧边栏中的“用户>添加用户”随意创建新用户。通常,您应该为要登录到站点的每个人创建一个新用户。

WordPress的用户角色和能力的权限-WordPress极简博客
您可能还已经意识到有关WordPress授权系统的其他事项:每个WordPress用户都有一个“角色”。您必须在创建新帐户的页面上选择它。

WordPress默认用户角色

WordPress开箱即用,具有以下角色:

  • 超级管理员:这是一个仅限多站点网络的角色。顾名思义,它是管理员的更强大版本。超级管理员不仅可以以管理员身份更改和控制单个WordPress网站,还可以更改谁可以访问网络中的特定网站。
  • 管理员:这是您可能用来登录自己的WordPress网站的角色。这就是WordPress默认情况下使网站上的第一个用户使用的功能,并且是单个WP站点功能最强大的角色。如果“管理员”无法在WordPress网站上开箱即用,则任何人都无法做到。安装插件、更改主题、创建用户、发布帖子等,这些都由管理员控制。
  • 编辑:这是下一个最强大的角色。您可以执行所有您可以想象的必要的后期和媒体创作以及编辑工作,但是不能新建用户、添加新插件或进行任何更改网站功能的操作。
  • 作者:从编辑又走了一步,作者角色只能更改自己的文章和媒体。他们无法更改网站上其他用户的内容。
  • 贡献者:贡献者可以编辑自己的文章,删除自己发表的未发布文章以及阅读网站。他们甚至无法发布自己的文章。
  • 订阅者:订阅者角色仅用于以下目的:一个您想在WordPress网站上拥有帐户的人,但您不想做任何事情,只能像没有帐户的人一样阅读您的网站。这个角色是您最经常看到的WordPress会员站点的“成员”,因为除了会员插件作者提供的这些用途之外,它不提供其他站点权限。

WordPress用户的安全隐患

为了安全起见,您希望为个人提供尽可能少的访问权限,使他们能够执行自己需要的操作。

尽管今天不是我们关注的重点,但值得一提的是在每个地方都遵循安全性的一般原则:您希望为个人提供尽可能少的访问权限,使他们能够执行自己需要的操作。

您最常在WordPress网站上使用的用户通常不应该是管理员。

“管理员”角色是(单个非网络)WordPress网站所具有的最强大的功能;向只需要发布和编辑文章及其他媒体的用户提供这么多的权限,这就是不必要的安全性错误。

对于正常的WordPress发布任务,“编辑”角色绰绰有余;实际上,如果您是该网站上的唯一作者,则“作者”角色可能会为您效劳。无论哪种方式,只有在您需要执行其他角色无法做的事情时,您才应该登录一个管理员用户(也必须具有该身份):创建新用户、安装或卸载插件、更改主题等。破坏您最常用的WordPress帐户(例如您无意中将其保留在咖啡馆中登录)不会让某人对您的网站造成严重破坏。

您不应该让旧帐户拥有比今天更多的访问权限。

同样,您不应该不加考虑就给任何类型的人员帐户。而且,您不应该让旧帐户拥有比今天更多的访问权限。假设有人曾经为您的网站写过文章,但现在不再写了:设置他们为订阅者角色。他们的帐户仍然存在,因此他们的帖子仍然可用并且属性适当,但是他们不会意外地做不应在您网站上做的任何事情。

能力和角色如何交织

到目前为止,我们已经确定WordPress网站上不同的用户角色具有不同的能力。实际上,这是WordPress访问控制系统的核心:用户是分配了特定角色的用户组的成员,并且该角色本身映射到站点上的各种能力。

为了更好地理解这一点,可以看下下面的图片。当我们移走我先前列出的角色时,您的角色将越来越少的WordPress中可用的特定功能。

WordPress的用户角色和能力的权限-WordPress极简博客这种具体的命名能力到用户角色的映射是WordPress访问控制系统最强大和有用的功能之一。当您需要授权(或取消授权)具有特定能力的用户或一组用户时,只需更改用户的角色即可轻松实现。同样,有时您需要所有用户组才能具有新功能。也许您的编辑者正在充当评论的主持人,并且您还希望他们能够从您的网站中删除用户。然后,您可以编辑“作者”角色以赋予它这种能力- 只有这种能力被称为remove_users。由于使用了“角色和能力”系统,因此您可以这样做,而不必担心您的站点上有20位编辑者这一事实。

允许您更改角色能力的插件

一旦了解了WordPress用户访问系统的工作原理,就可以通过多种方式进行更改,就像我刚才提到的那样(为编辑者提供“删除用户”功能)。

第一种方法是使用这方面的插件。

WordPress的用户角色和能力的权限-WordPress极简博客
User Role Editor

User Role Editor 是最常用的,但是如果您喜欢其他人,可以随时货比三家。这些插件基本上都为您提供了一种方便、直观的方式来编辑用户将能够在您的网站上进行的操作。

它们还允许您创建全新的角色-也许您需要创建一些简单且唯一的 “评论主持人”类型的用户。您只需创建该角色,并确保单击几下即可缩小所需的功能范围。

这些插件非常适合大多数WordPress用户,而这些用户不需要花费适度的性能开销。实际上,对于大多数站点来说,像这样的小插件的开销并不是最大的瓶颈,因此,专门的插件来进行所需更改的附加好处不值得让PHP费力。

但是,如果您是开发人员,或者性能下降确实实在难以承受,那么使用几行PH​​P即可轻松实现。

使用PHP更改WordPress用户角色的能力

在PHP中,WordPress角色是您使用和修改的对象。您可以通过以下两种方式之一访问它:直接通过访问全局变量$wp_roles—或通过函数get_role。我喜欢第二种,这有两个原因:

  1. 我不喜欢全局变量。
  2. 我认为该get_role版本使代码阅读性更好。

在这两种情况下,我们都将继续以允许我们的“编辑”执行以下操作为例remove_users。如果使用,则get_role如下所示:

function wps_editor_can_remove_users() {
    $editor = get_role( 'editor' );
    $editor->add_cap( 'remove_users' );
}

或者,如果您希望使用全局变量:

function wps_editor_can_remove_users(){
    global $wp_roles;
    $wp_roles->add_cap( 'editor', 'remove_users' );
}

在第一个示例中,获取角色(“编辑”)将为您处理方法调用'editor'上的参数add_cap,我很喜欢这种方法。

这些方法可以直接在您的插件或主题的functions.php使用-更改存储在数据库中,因此可以随时调用-或可以通过WordPress动作挂钩挂载到 init 。

这两个add_cap和remove_cap是对象的方法,而不是简单的函数调用。

值得非常清楚的是,add_cap和remove_cap(相反)都是对象方法,而不仅仅是您调用的函数。也就是说,您不能调用add_cap('editor', 'remove_user'):您必须首先使用get_role或访问全局$wp_roles对象来获取一个 WP_Role 对象。

用代码创建新的WordPress用户角色

我们提到插件不仅可以更改现有角色的能力,还可以让您创建新角色。要在自己的PHP中执行此操作,请使用add_role函数。它包含三个参数:

  1. 角色slug别名-比如 'comment_moderator'
  2. 角色的显示名称- 'Comment Moderator'或__('Commment Moderator', 'plugin-slug')(符合多语言国际化)
  3. 您希望该类型用户拥有的一系列能力

总之,它看起来像这样:

register_activation_hook( __FILE__, 'wps_add_roles_on_activation' );
function wps_add_roles_on_activation() {
    add_role( 
        'comment_moderator',
        __('Commment Moderator', 'plugin-slug'), 
        array( 
            'read' => true,
            'edit_posts' => true,
            'edit_other_posts' => true,
            'edit_published_posts' => true,
            'moderate_comments' => true
        )
    );
}

为了简洁起见,此角色仅获得四种能力。评论版主可以主持评论,并可以对文章进行较小的更改和更正(可能是回复评论)。他们可以更改自己的文章、其他人的文章以及已发布的文章。这就是这个角色所能做的,仅此而已。

再次,由于新角色存储在数据库中,并在需要时由WordPress从数据库中重新加载,因此您可以(通常应该)在插件或主题(不推荐在主题中创建用户)被激活时创建。如果您将它们吸引到init动作钩子上,它不会破坏任何东西,但是性能稍差。

更改特定用户的能力

可以忽略WordPress的角色系统并授予用户特定的能力,但这很少是最好的解决方案。

到目前为止,我们已经讨论了使用由用户角色授予和维护的WordPress用户的能力。在几乎所有情况下,我都建议您这样做来更改,控制和修改访问权限。与尝试手动控制站点上每个用户的操作相比,它是一个功能更强大、更灵活的系统。

话虽这么说,有时候您可能只需要与需要更多或更少权限的特定用户打交道,并且您知道您永远都不想在授权历史上的任何其他时间类似地授权(或取消授权)其他用户。现场。如果不是这样,请执行几个额外的步骤来创建角色,只有该用户现在可以使用。

如果确实要更改特定用户的能力,则可以仅对该用户通过add_cap和remove_cap方法进行更改。看起来像:

add_action( 'init', 'wps_david_cant_edit' );
function wps_david_cant_edit() {
    $user_id = 7; // 用户的ID
    $user = new WP_User( $user_id );
    $user->remove_cap( 'edit_posts' );
}

实质上,这是在加载角色的常规能力之后,对特定用户的特定替代。同样,这是可能的,但很可能不是最佳解决方案。

总结

从本质上讲,WordPress用户系统是我们处理WordPress网站功能的方式。通过为系统中的每个用户分配一个命名角色,WordPress可以访问一组明确定义的功能,这些功能确定该用户可以在站点上执行的操作。由于在用户可以做什么和他们是谁之间存在额外的一层(称为角色),因此您获得了很大的灵活性。这只是使WordPress出色的另一件事。

#用户权限#用户角色
1
等 1 人赞过
分享
夏柔 站长
文章 709评论 23
赞赏
夏柔
相关文章
  • 自定义onion域名
  • 宝塔linux面板一键工具箱
  • 7种提高代码阅读能力的方法
  • 保护你的WordPress,修改服务器默认用户名root
  • Python多线程扫描端口
  • ThnBo-一款针对WordPress开发的缩略图美化插件,为广大站长提供缩略图的美化便利
  • WordPress去除index.php的方法
  • WordPress美化-文字渐变特效
  • WordPress美化-抖动图片
  • 使用HBuilderX封装H5
16 8月, 2020
没有引流经验,分享9个截流引流方法?
夏柔
站长
夏山如碧 - 怀柔天下
709文章
23评论
58144K获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门30
WordPress技术教程265
前沿技术情报所7
城市创新——新消费8
最近有哪些不可错过的热文5
程序员的养生之道0
疫情实况
拜登公布战时抗疫计划
1月 22, 2021
31省区市新增确诊103例 本土94例
1月 22, 2021
科兴疫苗在智利获紧急使用许可
1月 21, 2021
更多
每日快讯
美共和党议员提交弹劾拜登条款
1月 22, 2021
江苏镇江一人核酸检测结果可疑
1月 22, 2021
美媒曝光特朗普离任后第一天动态
1月 22, 2021
男子骂防疫人员:我证件你敢看吗
1月 22, 2021
拜登公布战时抗疫计划
1月 22, 2021
31省区市新增确诊103例 本土94例
1月 22, 2021
巨大火球深夜划过日本上空
1月 21, 2021
科兴疫苗在智利获紧急使用许可
1月 21, 2021
更多
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2021 WordPress极简博客. Designed by 骚老板. 辽公网安备21010502000474号