WordPress用户角色和权限的终极指南

温馨提示:注册会员付费购买资源可永久免费下载更新版本

WordPress用户角色和权限使你能够控制其他用户在你的网站上能做什么或不能做什么。您可以使用它们来管理用户操作,例如撰写和编辑文章、创建新页面、审阅评论、安装插件、添加新用户等等。

理解用户角色和权限对于管理任何WordPress网站都是至关重要的。例如,如果您正在为客户构建一个站点,您不希望他们编辑或更改已安装的主题。同样,要求多作者博客的作者安装或删除插件也是不明智的。

学习如何巧妙地管理WordPress用户角色将帮助你简化你的工作流程,确保你网站的安全性,并获得对你网站的最终控制权。

在这份详尽的指南中,你将了解WordPress用户角色,WordPress提供的各种权限,如何编辑现有的用户角色,如何管理多个网站上的用户,以及如何用一套全新的权限创建新角色。

什么是WordPress用户角色和权限?

六个默认的WordPress用户角色

如何有效管理WordPress用户角色

管理WordPress多站点网络上的用户

如何定制现有的WordPress用户角色

如何在WordPress中创建自定义用户角色

如何从WordPress中删除用户角色

在WordPress中创建自定义权限

最佳WordPress用户角色和权限插件

什么是WordPress用户角色和权限?

而角色权限是WordPress中用户访问管理的基础。为了理解WordPress中的用户角色,你首先需要知道什么是权限。

WordPress将用户可以采取的任何行动定义为能力。以下是WordPress中可用权限的一些例子,以及它们在代码中是如何被引用的:

阅读文章(阅读)

以及撰写和编辑文章(edit_posts)

发布文章(publish _ posts)

安装插件(install_plugins)

删除主题(删除主题)

创建用户(创建用户)

适度评论(适度_评论)

大多数权限从它们的名称就可以看出。WordPress的核心内置了70多个硬编码的权限。

角色是您可以分配给用户的一系列能力。每个WordPress用户都需要分配一个角色。用户只能执行其角色授予的操作。

“角色”是“权限”的集合

在上图中,角色1中的任何用户都可以阅读文章,但不能编辑它。角色2的用户可以阅读和编辑文章,但不能发布文章。任何角色3的用户都可以阅读、编辑和发布文章,但不能删除文章,这与角色4的用户可以删除文章不同。

在WordPress仪表盘中添加新的用户面板

WordPress使用它的许多本地权限来定义它的默认用户角色。例如,它将publish_pages权限授予管理员和编辑,但不将它们分配给订阅者和贡献者。

WordPress仪表盘中的用户面板

至少,每个WordPress用户都有一个用户名、密码、电子邮件地址和角色。

PhpMyAdmin显示WP数据库存储权限的位置。

WordPress将其所有基于角色的权限存储在数据库中wp_user_roles序列化选项下的wp_options表中。WP_Roles核心类用于定义角色和权限如何存储在数据库中。

WP_Roles类

WordPress使用用户角色API来实现角色和权限,其中大部分是基于WP_Roles核心类的。Wp-includes/class-wp-roles.php可以在文件中找到它的源代码。

如果您查看数据库,您会发现这些角色位于一个具有已定义角色名称的数组中。Rolename key将用户角色名称存储为name键的值,并将所有权限存储在一个单独的数组中作为capability键的值。

array (‘rolename’ => array (‘name’ => ‘rolename’,’capabilities’ => array()))

WP_Roles类定义了许多方法。您可以在代码中的任何地方调用它们,以便与用户角色API进行交互。

注意:WordPress包含另一个名为WP_Role的核心类(注意单数“Role”)。它用于扩展用户角色API。

当您反序列化wp_user_roles的键值时,它看起来像这样:

array (‘administrator’ => array (‘name’ => ‘Administrator’,’capabilities’ => array (‘switch_themes’ => true,’edit_themes’ => true,’activate_plugins’ => true,// […rest of the lines cut off for brevity…]),),’editor’ => array (‘name’ => ‘Editor’,’capabilities’ => array (‘moderate_comments’ => true,’manage_categories’ => true,’manage_links’ => true,// […rest of the lines cut off for brevity…]),),’author’ => array (‘name’ => ‘Author’,’capabilities’ => array (‘upload_files’ => true,’edit_posts’ => true,’edit_published_posts’ => true,// […rest of the lines cut off for brevity…]),),’contributor’ => array (‘name’ => ‘Contributor’,’capabilities’ => array (‘edit_posts’ => true,’read’ => true,// […rest of the lines cut off for brevity…]),),’subscriber’ => array (‘name’ => ‘Subscriber’,’capabilities’ => array (‘read’ => true,’level_0′ => true,),),)

它是一个多维数组,每个角色都被赋予一个角色名和一组权限。类似地,WordPress将基于用户的权限存储在wp_usermeta表中,名称为wp_capabilities元键。

注意:您的设置中的wp_前缀可能不同。这取决于站点文件wp-config.php中的全局变量$table_prefix的值。

角色和权限图表

WordPress Codex中的角色和权限图表

WordPress Codex包含了一个简单的能力与角色表,尽管它不是那么直观。它总结了默认用户角色在单站点和多站点WordPress设置中可以执行的所有操作。权限达到一定数量后会有一个中断,让你轻松区分高等级和低等级权限。

为了更好地一目了然地显示所有WordPress角色和权限,您可以检查由Exygy提供的这个表单。

WordPress的Gutenberg块编辑器引入了一个惊人的特性,叫做可重用块。它允许你将整个块(或多个块)保存为模板,并在你网站的任何地方使用。

在WordPress新的Gutenberg块编辑器中添加“可重复使用的块”

因此,WordPress也引入了以下与可重用块相关的新权限:

创建可重复使用的块。

编辑可重复使用的块

读取可重用块

删除可重复使用的块。

上面列出的权限类似于与文章相关的权限。或者编辑者可以访问与可重用块相关的所有权限,而作者只能编辑或删除他们创建的可重用块。贡献者只能读取可重用的块。

特殊权限:未过滤的上传

未过滤上传是一种特殊权限,默认不分配给任何用户角色,包括管理员或超级管理员。它允许用户上传任何扩展名的文件(例如SVG或PSD),而不仅仅是那些被WordPress列入白名单的文件。

注意:你可以使用wp_get_mime_types()函数来获得WordPress支持的mime类型和文件扩展名的列表。

要启用此权限,您需要将以下代码片段添加到您的wp-config.php文件中。在要求您停止编辑的行之前定义常数。

define( ‘ALLOW_UNFILTERED_UPLOADS’, true );

在定义了这个常量之后,你可以在WordPress单一站点上为任何用户角色安装未过滤的上传权限。但是,在多站点安装中,只有超级管理员可以拥有此权限。

例如,如果你想给编辑器分配unfiltered_upload权限,你可以在你的WordPress代码中的任何地方添加以下代码(理想情况下,只有当主题或插件被激活时才运行):

我们将在本文后面讨论如何添加或定制所有用户角色或特定用户的权限。

原始权限和元权限

WordPress中有两种主要类型的权限:

原始权限:这些能力被授予特定的角色。具有这些角色的用户将自动继承原始权限。

元权限:默认情况下,这些权限不授予任何角色。WordPress在其代码和数据库中检查一个对象,比如文章、页面、用户或任何分类。如果逻辑检查成功,它会将元权限“映射”到一个或多个原始权限。

例如,WordPress向作者自己的文章授予edit_posts权限,以便他们可以编辑这些文章。但是,该权限不允许他们编辑其他用户的文章。这就是元权限发挥作用的地方。

WordPress使用map_meta_cap()函数返回绑定到特定对象的原始权限数组。然后将它们与用户对象进行比较,以检查用户是否可以编辑文章。

元权限的一些其他示例是read_post、delete_post、remove_user和read_post。我们将在下面的自定义权限部分了解更多。

六个默认的WordPress用户角色

WordPress包括六个预定义的用户角色。WordPress安装的第一个用户默认获得管理员角色(或者WordPress多站点安装的超级管理员角色)。

由于WordPress在发展成为一个成熟的CMS之前最初是一个博客平台,它定义了在网络上发布内容的大部分用户角色。它的其他预定义用户角色是编辑、作者、贡献者和订阅者。

默认的WordPress用户角色是按照功能顺序排列的。

把默认的WordPress用户角色想象成代表不同权限的堆叠圆柱体的集合。最大的气缸容量最大,第二大的气缸容量第二大,最小的气缸容量最小。

你不应该认为一种性格优于另一种性格。相反,将角色视为在站点内设置用户的责任。

用户的角色永远不会有高低之分。它准确地定义了它的意图。

现在让我们了解更多关于所有预定义的WordPress用户角色。

管理员(管理员)

WordPress中的管理员角色仪表板

WordPress将管理员角色分配给任何单一站点安装的第一个用户。它位于所有其他用户角色的顶端,可以访问WordPress定义的所有权限。具有管理员角色的用户可以执行以下操作:

创建和删除用户。

重置密码。

安装和管理插件和主题

编辑插件、主题、文件和代码

只有管理员可以在WordPress中添加新用户。

由于管理员是最强大的角色,您应该只将它分配给您信任的人。理想情况下,每个站点应该只有一个管理员。

WordPress多站点网络中管理员角色的定义略有不同,但名称相同。在多站点网络中,管理员角色不享有它在单个WP站点中拥有的某些权限,例如安装主题和插件。WordPress为超级管理员角色保留这些权限。

编辑(编辑)

WordPress中的“编辑”角色面板

编辑负责管理WordPress网站上的内容。他们可以创建、修改、发布或删除文章和页面,甚至是其他用户创建的文章和页面。他们的一些能力包括:

删除已发布的文章和页面。

温和的评论

管理链接和类别

编辑其他用户的文章和页面

编辑不能进行站点管理操作,例如安装插件和主题。他们的主要职责是监督其他作者和投稿人的工作,或者是一个人的内容团队。

提示:如果你管理自己的WordPress网站,你可以为自己创建一个具有编辑角色的替代用户。这样,您可以将管理和发布职责分开。即使你的编辑账号被黑,你的管理员账号也不会被黑。

作者(作者)

WordPress中的“作者”角色面板

顾名思义,任何拥有作者角色的用户都可以创建、编辑和发布文章。他们还可以上传媒体文件和删除自己的文章,但他们不能创建页面或编辑其他人的文章。

作者可以标记他们的文章,并将他们的文章分配到现有的类别,但他们不能创建新的类别。像编辑一样,他们没有任何管理权限,比如设置、插件和主题。

注意:作者甚至可以在文章发表后删除它们。如果您想将作者的角色分配给任何人,请确保您对他们的文章拥有完全的控制权,包括删除它们。

贡献者(贡献者)

WordPress中的“贡献者”角色面板

贡献者角色是作者角色的简化版本。具有参与者角色的用户可以创建自己的文章,删除文章草稿,但不能发布文章。

他们可以保存文章草稿或将其发送给编辑或管理员进行审阅和发布。一旦他们发布了他们的文章,贡献者就不能删除他们的文章。相反,作者可以删除他们发表的文章。

贡献者角色非常适合新作者和客座贡献者。

订户(订户)

WordPress中的“订阅者”角色面板

订户角色处于权限等级的最低级别。拥有订阅者角色的用户可以管理他们的个人资料,并有权阅读网站上的所有文章。差不多就是这样!

您可以将内容仅限于已登录的用户,包括订户。

通常,每个人都有权阅读WordPress网站上的内容。然而,在订阅或会员网站中,只有登录的用户才能查看内容。具有订阅者角色的用户可以阅读这些实例中的文章。

超级管理员(超级管理员)

WordPress多站点网络中“超级管理员”角色的仪表板

超级管理员角色仅在WordPress多站点安装中可用。该角色代替多站点网络中的单站点管理员,并授予所有高级管理权限。

超级管理员可以使用的一些仅限多站点的权限包括:

创建、管理和删除网站。

管理网络用户、插件、主题和选项

升级多站点网络上的所有站点

设置多站点网络

将管理员分配到网络中的各个站点。

WordPress多站点网络中的“站点”面板

超级管理员仪表板中的“主题”面板

在多站点网络中,只有超级管理员可以安装主题并在整个网络中启用它们。个别网站的管理员只能查看和激活已经由超级管理员安装的主题。

例如,我在我的网络上安装了免费的Astra主题,但我没有为网络启用它。所以网络中各个子站点的管理员在他们的主题面板下是看不到的。

网站管理员无法安装新主题。

在上面的屏幕截图中,您还可以注意到网络中的站点管理员无法访问“插件”菜单。与主题不同,超级管理员可以更改网络设置,使管理员能够在他们的站点上安装和激活插件。

超级管理员可以赋予管理员管理插件的能力

超级管理员也可以“网络激活”插件

超级管理员还可以激活网络上的插件,以确保它们对于网络上的所有站点都是强制性的。站点管理员无法停用网络激活插件。该设置非常适合在整个网络中实施基本插件。

网络管理员屏幕

网络管理员仪表板是超级管理员管理WordPress多站点网络功能的中心枢纽。网络创建后,只有具有超级管理员角色的用户才能访问网络。

网络管理员仪表板包括管理网络的独特选项。

1.仪表盘

管理仪表板是网站详细信息的中心。它让您可以访问所有网络设置。

2.网站(全球资讯网的主机站)

网络管理仪表板中的“站点”面板

您可以使用站点面板来管理属于多站点网络的每个站点。这里列出的站点将是子目录或子域,这取决于你如何配置你的WordPress多站点网络。

在这里,您可以向网络中添加新站点或从网络中删除现有站点。

您还可以从这里访问有关站点、用户、主题和整体网络设置的信息。您创建的第一个站点是网络中的主站点。从网络中第一个站点的选项中继承所有设置。

向WordPress多站点网络添加一个新站点

单击“添加新站点”链接或按钮会将您带到上面的屏幕,在那里您可以向多站点网络添加新站点。如果您不希望其他人成为新网站的管理员,您也可以将自己指定为管理员。

3.用户

网络仪表板中的用户面板

网络管理仪表板中的用户屏幕允许您管理用户并向多站点网络添加新用户。只有超级管理员可以向网络添加用户,但是超级管理员可以修改网络设置,使站点管理员能够向自己的站点添加新用户。

4.主题

网络管理仪表板中的“主题”面板

主题屏幕允许您管理站点管理员可以访问的主题。它不允许您激活或停用任何网站正在使用的主题,而只是设置任何网站都可以使用的主题。

如果您禁用了在网络上任何地方使用的主题,即使您禁用了它,它也将在站点上保持活动状态。但是,如果网站使用另一个主题,被禁用的主题将不会出现在网站的主题面板中。

5.插件

网络管理仪表板中的“插件”面板

插件屏幕允许用户在网络中添加或删除插件。添加后,您可以从网站的仪表板上激活插件。您也可以从该网络激活插件,以强制在网络中的所有站点上使用插件。

默认情况下,站点管理员无法访问其控制面板中的插件菜单。超级管理员可以通过修改网络设置为他们启用该功能。

为所有子网站管理员启用插件管理。

注意:不是所有的WordPress插件都支持多站点网络。你需要阅读插件的文档,确认它们是否适合多站点设置。

设置

网络管理仪表板中的网络设置面板

您可以在网络设置屏幕上设置和更改整个网络的设置。网络的默认设置基于您在设置网络时创建的第一个站点。您可以在这里更改的一些网络设置有:

操作设置

建立

新网站设置

上传设置

语言设置

菜单设置

在这里,您还可以访问创建网络时使用的网络设置信息。您可以参考WordPress Codex中的网络管理员设置屏幕,了解所有可用设置选项的详细信息。

7.更新

网络管理仪表板中的更新面板

您可以从更新窗口控制网络和单个站点的更新过程。更新面板将显示任何WordPress核心、主题和插件的可用更新。安装了最新版本的WordPress后,你可以通过升级网页屏幕将它应用到网络上的所有站点。

升级网络管理仪表板中的网络面板。

注意:在WordPress单站点安装中,管理员本质上是超级管理员,因为他们可以访问所有的管理员权限。

你可以自定义用户角色,也可以使用WordPress的预定义权限创建你自己的自定义角色。

角色和权限的优势

和角色权限系统是WordPress用户管理的支柱。以下是它的许多好处:

用户角色可以帮助您更有效地管理站点上的所有用户。即使你的网站上有几十个来自世界各地的用户,你也可以通过给每个人适当的角色来轻松地管理他们。

它可以通过限制用户使用特定权限来帮助您提高网站的安全性。例如,作者不能删除他人的文章,编辑不能更改主题或安装插件,订阅者只能访问自己的个人资料。

WordPress插件可以检查用户是否有一定的权限,并在此基础上进行一定的操作。WordPress current_user_can()函数帮助执行这个检查。例如,安全插件只能向管理员显示其选项面板,但仍然向所有用户显示安全警告。

您可以编辑用户角色,将您的部分角色职责委派给其他用户,从而节省时间。假设你的网站吸引了很多评论。在这种情况下,您可以允许受信任的作者进行审核。作为管理员,您仍将保留最终权力,但可以根据需要分担一些责任。

您可以使用权限检查来显示只有特定用户角色可以查看的私人文章和页面。这构成了会员网站的基础。

您可以根据用户角色显示或隐藏网站上的前端元素(如菜单项、小工具)。

您可以创建具有自定义权限的自定义文章类型,并为每个用户角色授予或拒绝这些权限。同样,你也可以定义自定义权限,只允许某些角色访问你的插件或主题设置。

如何有效管理WordPress用户角色

了解所有的用户角色和权限是很重要的,但是你也需要知道如何在你的站点上有效地管理它们。虽然没有两个WordPress网站是完全相同的,但是你可以遵循一些基本规则来充分利用WordPress的用户角色和权限。

为每个用户提供最低访问权限。

只给网站上的每个用户分配他们需要的访问级别。授予较少的权限总是比授予过多的权限好。保护WordPress用户角色对于确保你的网站及其内容的安全是至关重要的。

仔细为每个用户分配用户角色。

限制管理员和编辑的数量。

一般来说,每个站点应该只有一个管理员,并且只能对站点进行核心更改。WordPress建议你遵守“最小特权原则”,也就是说,你应该只授予用户执行他们要求的工作所必需的特权。

例如,最好通过编辑级别用户而不是管理员来管理网站上的内容。如果你的网站上有多个编辑,确保你可以信任他们广泛的功能。

将作者角色分配给可以信任的内容创建者,因为他们可以发布和删除自己的文章。投稿人角色更适合新内容创作者和嘉宾文章。

根据需要自定义用户角色。

的默认WordPress用户角色是有用的,但是它们可能不适合所有的用例。例如,让你的作者能够评论评论。

值得庆幸的是,WordPress使我们能够定制用户角色或者根据我们独特的需求创建新的角色。你可以通过代码或者借助WordPress用户角色插件手动完成。我们将在本文中介绍这两种方法。

管理WordPress多站点网络上的用户

WordPress Multisite包含用户管理的独特设置。有些很容易掌握,有些则不容易。

让我们深入探讨一下。

多站点网络注册设置

开箱即用,只有超级管理员可以在网络上创建新用户和站点。但是,他们可以允许用户在网络上注册他们的帐户作为子网站的订户。

要启用此功能,请转到网络管理员>网络设置>注册设置>允许新注册,然后启用选项“用户帐户可能已经注册”。

允许用户在您的网络上注册帐户。

在这里,您还可以允许登录用户在您的网络上创建新站点。如果您希望将创建网站的能力仅限于您设置的用户,则可以选中此选项。

最后一个选项允许用户注册一个帐户并在您的网络上创建一个站点。在您的网络上创建站点的用户被授予其子站点的管理员角色。

一个用户帐户可以访问整个网络。

当您在网络上创建用户帐户时,或者当用户在您网络中的任何站点上注册帐户时,他们可以在登录后导航到网络中的任何站点。想象一下,这是一个像脸书或Reddit这样的社交网络,你可以创建一个账户,使用同一个用户配置文件访问所有群组或子部分。

这是使用WordPress Multisite的主要好处之一。它允许你的用户只需注册一个账户就可以访问你所有的网站。

授予网站管理员额外的权限。

通过选中“添加新用户”选项,您可以允许站点管理员将用户添加到他们自己的站点。

允许网站管理员向其子网站添加新用户。

如前所述,您可以授权站点管理员管理其子站点上的插件,方法是转到网络设置>菜单设置,并选中启用管理菜单>插件选项。

子站点级用户注册

默认情况下,WordPress多站点安装只允许用户注册整个网络。没有只为一个子网站启用用户注册的选项。您可以使用网络子网站用户注册插件来更改此行为。

“网络子网站用户注册”插件

该插件允许站点管理员启用本地用户注册,并且只能访问他们的站点。默认情况下,新用户将承担订阅者角色,但是您可以通过修改插件设置来更改此设置。

允许任何人只能在您的子网站上注册帐户。

将同一用户分配给多个子网站。

您可以将同一个用户分配到网络中具有独特角色的多个站点。当用户登录其站点的仪表板时,他们可以通过“我的站点”屏幕访问其所有站点的仪表板。

在WordPress多站点网络中,你可以将一个用户分配到多个站点。

向其他用户授予超级管理员权限。

超级管理员也可以与其他用户共享他们的权限。您应该小心地启用该选项,并且只将它分配给您可以信任的用户。

授予其他用户网络的超级管理员权限。

了解WordPress Multisite中的所有用户管理设置将有助于您更好地管理您的网络。要找到WordPress Multisite的其他有用插件,你可以搜索WordPress插件库进行安装。

如何定制现有的WordPress用户角色

您可以向现有用户角色添加权限,以提高他们的访问级别。例如,您可以赋予编辑器管理插件的权力。或者,您可能希望投稿人评论他们自己的文章。让我们来学习如何做到这一点。

注意:如果你不喜欢使用代码,你可以跳过手动方法,直接进入下面的用户角色和权限插件部分。或者干脆雇个WordPress开发者。

如何向用户角色添加权限

你可以使用WordPress add_cap()函数为用户角色或任何特定用户添加权限。我将使用一个名为Customize User Role的定制插件来展示如何使用这个函数来授予编辑者角色管理插件的权限。

声明:

1,本站分享的资源来源于用户上传或网络分享,如有侵权请联系站长。

2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除。

3,如果你也有好的建站资源,可以投稿到本站。

4,本站提供的所有资源不包含技术服务请大家谅解!

5,如有链接无法下载,请联系站长!

6,特别声明:仅供参考学习,不提供技术支持,建议购买正版!如果发布资源侵犯了您的利益请留言告知!


创网站长资源网 » WordPress用户角色和权限的终极指南