国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁(yè) > 技術(shù) > wordpress

WordPress用戶角色和權(quán)限的終極指南

wordpress 2023-01-09 13:10:33

WordPress用戶角色和權(quán)限的終極指南

wordpress用戶角色權(quán)限使您能夠控制其他用戶可以或不能在您的網(wǎng)站上執(zhí)行的操作。您可以使用它們來(lái)管理用戶操作,例如撰寫和編輯文章、創(chuàng)建新頁(yè)面、審核評(píng)論、安裝插件、添加新用戶等等。

了解用戶角色和權(quán)限對(duì)于管理任何WordPress網(wǎng)站都是必不可少的。例如,如果您正在為客戶構(gòu)建站點(diǎn),您不希望他們編輯或更改已安裝的主題。同樣,讓多作者博客的作者安裝或刪除插件也是不明智的。

學(xué)習(xí)如何巧妙地管理WordPress用戶角色將幫助您簡(jiǎn)化工作流程、確保網(wǎng)站安全并獲得對(duì)網(wǎng)站的最終控制權(quán)。

在這份詳盡的指南中,您將了解WordPress用戶角色、WordPress提供的各種權(quán)限、如何編輯現(xiàn)有用戶角色、如何在多站點(diǎn)上管理用戶,以及使用一組全新權(quán)限創(chuàng)建新角色。

  1. 什么是WordPress用戶角色和權(quán)限?
  2. 六個(gè)默認(rèn)的WordPress用戶角色
  3. 如何有效管理WordPress用戶角色
  4. 在WordPress多站點(diǎn)網(wǎng)絡(luò)上管理用戶
  5. 如何自定義現(xiàn)有的WordPress用戶角色
  6. 如何在WordPress中創(chuàng)建自定義用戶角色
  7. 如何從WordPress中刪除用戶角色
  8. 在WordPress中創(chuàng)建自定義權(quán)限
  9. 最好的WordPress用戶角色和權(quán)限插件

什么是WordPress用戶角色和權(quán)限?

角色和權(quán)限是WordPress中用戶訪問(wèn)管理的基礎(chǔ)。要了解WordPress中的用戶角色,您首先需要知道什么是權(quán)限。

WordPress將用戶可以采取的任何操作定義為Capability。以下是WordPress中可用權(quán)限的一些示例,以及它們?cè)谄浯a中的引用方式:

  • 閱讀文章( read)
  • 撰寫和編輯文章(?edit_posts?)
  • 發(fā)布文章(?publish_posts?)
  • 安裝插件 (?install_plugins?)
  • 刪除主題 (?delete_themes?)
  • 創(chuàng)建用戶(create_users)
  • 適度評(píng)論 (?moderate_comments?)

大多數(shù)權(quán)限從它們的名稱就可以不言自明。WordPress的核心內(nèi)置了70多種硬編碼權(quán)限。

角色是您可以分配給用戶的一系列能力。每個(gè)WordPress用戶都需要分配一個(gè)角色。用戶只能執(zhí)行其角色授予他們的操作。

“角色”是“權(quán)限”的集合

“角色”是“權(quán)限”的集合

在上圖中,角色 1的任何用戶都可以閱讀文章,但不能編輯文章。具有角色 2的用戶可以閱讀和編輯文章,但他們不能發(fā)布文章。任何具有角色 3的用戶都可以閱讀、編輯和發(fā)布文章,但他們不能刪除文章,這與可以刪除文章的角色 4用戶不同。

WordPress儀表盤中的“添加新用戶”面板

WordPress儀表盤中的“添加新用戶”面板

WordPress使用其許多本機(jī)權(quán)限來(lái)定義其默認(rèn)用戶角色。例如,它授予管理員和編輯者權(quán)限publish_pages,但不會(huì)將它們分配給訂閱者和貢獻(xiàn)者。

WordPress儀表盤中的“用戶”面板

WordPress儀表盤中的“用戶”面板

至少,每個(gè)WordPress用戶都有一個(gè)用戶名、密碼、一個(gè)電子郵件地址和一個(gè)角色。

phpMyAdmin顯示W(wǎng)P數(shù)據(jù)庫(kù)存儲(chǔ)權(quán)限的位置

phpMyAdmin顯示W(wǎng)P數(shù)據(jù)庫(kù)存儲(chǔ)權(quán)限的位置

WordPress將其所有基于角色的權(quán)限存儲(chǔ)在其數(shù)據(jù)庫(kù)中wp_user_roles序列化選項(xiàng)下的wp_options表中。WP_Roles核心類用于定義如何在數(shù)據(jù)庫(kù)中存儲(chǔ)角色和權(quán)限。

WP_Roles類

WordPress使用User Roles API實(shí)現(xiàn)角色和權(quán)限,其中大部分基于WP_Roles核心類。wp-includes/class-wp-roles.php您可以在文件中找到它的來(lái)源。

如果您查看數(shù)據(jù)庫(kù),您會(huì)發(fā)現(xiàn)角色位于一個(gè)已定義角色名稱的數(shù)組中。rolename鍵將用戶角色名稱存儲(chǔ)為name鍵的值,并將所有權(quán)限存儲(chǔ)在單獨(dú)的數(shù)組中作為capability鍵的值。

array (
'rolename' => array (
'name' => 'rolename',
'capabilities' => array()
)
)

WP_Roles類定義了很多方法。您可以在代碼中的任何位置調(diào)用它們以與用戶角色API進(jìn)行交互。

注意: WordPress包含另一個(gè)名為WP_Role的核心類(注意單數(shù)“Role”)。它用于擴(kuò)展用戶角色API。

當(dāng)你反序列化的wp_user_roles鍵值時(shí),它看起來(lái)像這樣:

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,
),
),
)

它是一個(gè)多維數(shù)組,每個(gè)角色都分配了一個(gè)角色名稱并授予了一組權(quán)限。同樣,WordPress將基于用戶的權(quán)限存儲(chǔ)在帶有wp_capabilities元鍵名稱的wp_usermeta表中。

注意:您的設(shè)置中的wp_前綴可能不同。這取決于站點(diǎn)文件wp-config.php$table_prefix全局變量的值。

角色與權(quán)限圖表

WordPress Codex中的“角色與權(quán)限”圖表

WordPress Codex中的“角色與權(quán)限”圖表

WordPress Codex包含一個(gè)簡(jiǎn)單的Capability vs Role Table,盡管它不是那么直觀。它總結(jié)了默認(rèn)用戶角色在單站點(diǎn)和多站點(diǎn)WordPress設(shè)置中可以執(zhí)行的所有操作。在一定數(shù)量的權(quán)限之后會(huì)有一個(gè)中斷,以便您輕松區(qū)分高級(jí)和低級(jí)權(quán)限。

為了更好地一目了然地展示所有WordPress角色和權(quán)限,您可以查看Exygy提供的這張表格。

WordPress的Gutenberg區(qū)塊編輯器引入了一個(gè)名為Reusable Blocks的驚人功能。它允許您將整個(gè)區(qū)塊(或多個(gè)區(qū)塊)保存為模板,并在您網(wǎng)站的其他任何地方使用它。

在WordPress的新Gutenberg區(qū)塊編輯器中添加“可重用區(qū)塊”

在WordPress的新Gutenberg區(qū)塊編輯器中添加“可重用區(qū)塊”

因此,WordPress還引入了以下與可重用區(qū)塊相關(guān)的新權(quán)限:

  • 創(chuàng)建可重用的區(qū)塊
  • 編輯可重用區(qū)塊
  • 讀取可重用區(qū)塊
  • 刪除可重用的區(qū)塊

上面列出的權(quán)限與文章相關(guān)的權(quán)限類似。管理員或編輯者可以訪問(wèn)所有與可重用區(qū)塊相關(guān)的權(quán)限,而作者只能編輯或刪除由他們創(chuàng)建的可重用區(qū)塊。貢獻(xiàn)者只能讀取可重用的區(qū)塊。

特殊權(quán)限:未經(jīng)過(guò)濾的上傳

未經(jīng)過(guò)濾的上傳是一項(xiàng)特殊權(quán)限,默認(rèn)情況下不分配給任何用戶角色,包括管理員或超級(jí)管理員。它允許用戶上傳具有任何擴(kuò)展名(例如 SVG 或 PSD)的文件,而不僅僅是那些被WordPress列入白名單的文件。

注意:您可以使用wp_get_mime_types() 函數(shù)獲取WordPress支持的mime類型和文件擴(kuò)展名列表。

要啟用此權(quán)限,您需要將以下代碼片段添加到您的wp-config.php文件中。在要求您停止編輯的行之前定義常量。

define( 'ALLOW_UNFILTERED_UPLOADS', true );

定義此常量后,您可以為WordPress單站點(diǎn)上的任何用戶角色安裝未過(guò)濾上傳權(quán)限。但是,在多站點(diǎn)安裝中,只有超級(jí)管理員才能擁有此權(quán)限。

例如,如果您想將unfiltered_upload權(quán)限分配給編輯器,您可以在WordPress代碼中的任何位置添加以下代碼(理想情況下,僅在主題或插件激活時(shí)運(yùn)行它):

add_cap( 'unfiltered_upload' );
?>

我們將在本文后面討論如何添加或自定義所有用戶角色或特定用戶的權(quán)限。

原始權(quán)限與元權(quán)限

WordPress中主要有兩種類型的權(quán)限:

  • 原始權(quán)限:這些能力被授予特定角色。具有這些角色的用戶會(huì)自動(dòng)繼承原始權(quán)限。
  • 元權(quán)限:這些權(quán)限默認(rèn)不授予任何角色。WordPress在其代碼和數(shù)據(jù)庫(kù)中檢查某個(gè)對(duì)象,例如文章、頁(yè)面、用戶或任何分類法,如果邏輯檢查成功,它會(huì)將元權(quán)限“映射”到一個(gè)或多個(gè)原始權(quán)限。

例如,WordPress授予作者自己文章的edit_posts權(quán)限,以便他們能夠編輯它們。但是,此權(quán)限不允許他們編輯其他用戶的文章。這就是元權(quán)限提供幫助的地方。

WordPress使用map_meta_cap()函數(shù)返回綁定到特定對(duì)象的原始權(quán)限數(shù)組。然后它將它們與用戶對(duì)象進(jìn)行比較,以檢查用戶是否可以編輯文章。

其他一些元權(quán)限示例是read_postdelete_post、remove_userread_post。我們將在下面的自定義權(quán)限部分中更深入地了解它們。

六個(gè)默認(rèn)的WordPress用戶角色

WordPress包括六個(gè)預(yù)定義的用戶角色。WordPress安裝的第一個(gè)用戶默認(rèn)獲得管理員角色(或WordPress多站點(diǎn)安裝的超級(jí)管理員角色)。

由于WordPress在發(fā)展成為成熟的CMS之前最初是一個(gè)博客平臺(tái),因此它定義了大部分用戶角色以在網(wǎng)絡(luò)上發(fā)布內(nèi)容。它的其他預(yù)定義用戶角色是Editor、Author、ContributorSubscriber。

默認(rèn)的WordPress用戶角色按功能順序堆疊

默認(rèn)的WordPress用戶角色按功能順序堆疊

將默認(rèn)的WordPress用戶角色想象為代表各種權(quán)限的堆疊圓柱體的集合。最大的圓柱體的能力最多,第二大的圓柱體的能力次之,最小的圓柱體的能力最少。

你不應(yīng)該認(rèn)為一個(gè)角色優(yōu)于另一個(gè)角色。相反,將角色視為在站點(diǎn)內(nèi)設(shè)置用戶的職責(zé)。

用戶角色永遠(yuǎn)不會(huì)優(yōu)越,也不會(huì)低劣,它準(zhǔn)確地定義了它的意圖。

現(xiàn)在讓我們?cè)敿?xì)了解所有預(yù)定義的WordPress用戶角色。

Administrator(管理員)

WordPress中的“Administrator”角色儀表盤

WordPress中的“Administrator”角色儀表盤

WordPress為任何單站點(diǎn)安裝的第一個(gè)用戶分配管理員角色。它位于所有其他用戶角色的頂部,可以訪問(wèn)WordPress定義的所有權(quán)限。具有管理員角色的用戶可以執(zhí)行以下操作:

  • 創(chuàng)建和刪除用戶。
  • 重置密碼。
  • 安裝和管理插件和主題
  • 編輯插件、主題、文件和代碼

只有管??理員可以在WordPress中添加新用戶

只有管??理員可以在WordPress中添加新用戶

由于管理員是最強(qiáng)大的角色,因此您應(yīng)該只將其分配給您信任的人。理想情況下,每個(gè)站點(diǎn)應(yīng)該只有一名管理員。

WordPress多站點(diǎn)網(wǎng)絡(luò)中的管理員角色的定義略有不同,但名稱相同。在多站點(diǎn)網(wǎng)絡(luò)中,管理員角色不享有在WP單站點(diǎn)中具有的某些權(quán)限,例如安裝主題和插件。WordPress為超級(jí)管理員角色保留了這些權(quán)限。

Editor(編輯)

WordPress中的“編輯”角色儀表盤

WordPress中的“編輯”角色儀表盤

編輯器負(fù)責(zé)管理WordPress網(wǎng)站上的內(nèi)容。他們可以創(chuàng)建、修改、發(fā)布或刪除文章和頁(yè)面,甚至是其他用戶創(chuàng)建的文章和頁(yè)面。他們的一些能力包括:

  • 刪除已發(fā)布的文章和頁(yè)面
  • 適度的評(píng)論
  • 管理鏈接和類別
  • 編輯其他用戶的文章和頁(yè)面

編輯者不能采取站點(diǎn)管理操作,例如安裝插件和主題。他們的主要職責(zé)是監(jiān)督其他作者和貢獻(xiàn)者的工作,或者是一個(gè)人的內(nèi)容團(tuán)隊(duì)。

提示:如果您自己管理WordPress網(wǎng)站,您可以為自己創(chuàng)建一個(gè)具有編輯角色的備用用戶。這樣,您就可以將您的管理和發(fā)布職責(zé)分開。即使您的編輯帳戶遭到入侵,您的管理員帳戶也不會(huì)受到黑客攻擊。

Author(作者)

WordPress中的“作者”角色儀表盤

WordPress中的“作者”角色儀表盤

顧名思義,任何具有Author角色的用戶都可以創(chuàng)建、編輯和發(fā)布文章。他們還可以上傳媒體文件和刪除自己的文章,但不能創(chuàng)建頁(yè)面或編輯其他任何人的文章。

作者可以為他們的文章添加標(biāo)簽并將他們的文章分配給現(xiàn)有的類別,但他們不能創(chuàng)建新的類別。與編輯一樣,他們無(wú)權(quán)訪問(wèn)任何管理職責(zé),例如設(shè)置、插件和主題。

注意:作者即使在發(fā)布后也可以刪除他們的文章。如果您要為任何人分配作者的角色,請(qǐng)確保您可以完全控制他們的文章,包括刪除它們。

Contributor(貢獻(xiàn)者)

WordPress中的“貢獻(xiàn)者”角色儀表盤

WordPress中的“貢獻(xiàn)者”角色儀表盤

貢獻(xiàn)者角色是作者角色的精簡(jiǎn)版。具有貢獻(xiàn)者角色的用戶可以創(chuàng)建自己的文章、刪除文章的草稿,但不能發(fā)布文章。

他們可以保存文章的草稿或?qū)⑵浒l(fā)送給編輯或管理員進(jìn)行審查和發(fā)布。一旦他們發(fā)布了文章,貢獻(xiàn)者就無(wú)法刪除他們的文章。相反,作者可以刪除他們發(fā)布的文章。

貢獻(xiàn)者角色非常適合新作者和來(lái)賓貢獻(xiàn)者。

Subscriber(訂閱者)

WordPress中的“訂閱者”角色儀表盤

WordPress中的“訂閱者”角色儀表盤

訂閱者角色位于權(quán)限排名的最低級(jí)別。具有訂閱者角色的用戶可以管理他們的個(gè)人資料并有權(quán)閱讀網(wǎng)站上的所有文章。差不多就是這樣!

您可以將內(nèi)容限制為僅登錄用戶,包括訂閱者

您可以將內(nèi)容限制為僅登錄用戶,包括訂閱者

通常,每個(gè)人都有權(quán)閱讀WordPress網(wǎng)站上的內(nèi)容。但是,在訂閱或會(huì)員網(wǎng)站中,只有登錄用戶才能查看內(nèi)容。具有訂閱者角色的用戶可以閱讀這些實(shí)例中的文章。

Super Admin(超級(jí)管理員)

WordPress多站點(diǎn)網(wǎng)絡(luò)中的“超級(jí)管理員”角色儀表盤

WordPress多站點(diǎn)網(wǎng)絡(luò)中的“超級(jí)管理員”角色儀表盤

超級(jí)管理員角色僅在WordPress多站點(diǎn)安裝中可用。此角色取代多站點(diǎn)網(wǎng)絡(luò)中的單站點(diǎn)管理員,并授予對(duì)所有高級(jí)管理權(quán)限的訪問(wèn)權(quán)限。

一些可供超級(jí)管理員使用的僅限多站點(diǎn)的權(quán)限包括:

  • 創(chuàng)建、管理和刪除網(wǎng)絡(luò)站點(diǎn)
  • 管理網(wǎng)絡(luò)用戶、插件、主題和選項(xiàng)
  • 升級(jí)多站點(diǎn)網(wǎng)絡(luò)上的所有站點(diǎn)
  • 設(shè)置多站點(diǎn)網(wǎng)絡(luò)
  • 將管理員分配給網(wǎng)絡(luò)的各個(gè)站點(diǎn)

WordPress多站點(diǎn)網(wǎng)絡(luò)中的“站點(diǎn)”面板

WordPress多站點(diǎn)網(wǎng)絡(luò)中的“站點(diǎn)”面板

超級(jí)管理員儀表盤中的“主題”面板

超級(jí)管理員儀表盤中的“主題”面板

在多站點(diǎn)網(wǎng)絡(luò)中,只有超級(jí)管理員可以安裝主題并在整個(gè)網(wǎng)絡(luò)中啟用它們。個(gè)別網(wǎng)站的管理員只能查看和激活已由超級(jí)管理員安裝的主題。

例如,我在我的網(wǎng)絡(luò)上安裝了免費(fèi)的Astra主題,但我沒有為網(wǎng)絡(luò)啟用它。因此,網(wǎng)絡(luò)中各個(gè)子站點(diǎn)的管理員無(wú)法在他們的主題面板下看到它。

網(wǎng)絡(luò)子站點(diǎn)管理員無(wú)法安裝新主題

網(wǎng)絡(luò)子站點(diǎn)管理員無(wú)法安裝新主題

在上面的屏幕截圖中,您還可以注意到網(wǎng)絡(luò)中的站點(diǎn)管理員無(wú)法訪問(wèn)“插件”菜單與主題不同,超級(jí)管理員可以更改網(wǎng)絡(luò)設(shè)置以使管理員能夠在其站點(diǎn)上安裝和激活插件。

超級(jí)管理員可以賦予管理員管理插件的能力

超級(jí)管理員可以賦予管理員管理插件的能力

超級(jí)管理員還可以“網(wǎng)絡(luò)激活”插件

超級(jí)管理員還可以“網(wǎng)絡(luò)激活”插件

超級(jí)管理員還可以網(wǎng)絡(luò)激活插件,以確保它們被強(qiáng)制用于網(wǎng)絡(luò)上的所有站點(diǎn)。站點(diǎn)管理員無(wú)法停用網(wǎng)絡(luò)激活插件。此設(shè)置非常適合在整個(gè)網(wǎng)絡(luò)中強(qiáng)制執(zhí)行基本插件。

網(wǎng)絡(luò)管理員屏幕

網(wǎng)絡(luò)管理員儀表板充當(dāng)超級(jí)管理員管理WordPress Multisite網(wǎng)絡(luò)功能的中心樞紐。只有在創(chuàng)建網(wǎng)絡(luò)后具有超級(jí)管理員角色的用戶才能訪問(wèn)它。

網(wǎng)絡(luò)管理員儀表盤包括管理網(wǎng)絡(luò)的獨(dú)特選項(xiàng)

網(wǎng)絡(luò)管理員儀表盤包括管理網(wǎng)絡(luò)的獨(dú)特選項(xiàng)

1. 儀表板

Network Admin Dashboard是有關(guān)您的網(wǎng)絡(luò)站點(diǎn)的詳細(xì)信息的中心樞紐。它使您可以訪問(wèn)所有網(wǎng)絡(luò)設(shè)置。

2. 網(wǎng)站

網(wǎng)絡(luò)管理儀表盤中的“站點(diǎn)”面板

網(wǎng)絡(luò)管理儀表盤中的“站點(diǎn)”面板

您可以使用站點(diǎn)面板來(lái)管理屬于多站點(diǎn)網(wǎng)絡(luò)的各個(gè)站點(diǎn)。此處列出的站點(diǎn)將是子目錄或子域,具體取決于您配置WordPress多站點(diǎn)網(wǎng)絡(luò)的方式。

從這里,您可以向網(wǎng)絡(luò)添加新站點(diǎn)或從網(wǎng)絡(luò)中刪除現(xiàn)有站點(diǎn)。

您還可以從此處訪問(wèn)有關(guān)站點(diǎn)、用戶、主題和整體網(wǎng)絡(luò)設(shè)置的信息。您創(chuàng)建的第一個(gè)站點(diǎn)是網(wǎng)絡(luò)中的主站點(diǎn)。網(wǎng)絡(luò)從第一個(gè)站點(diǎn)的選項(xiàng)繼承其所有設(shè)置。

將新站點(diǎn)添加到WordPress多站點(diǎn)網(wǎng)絡(luò)

將新站點(diǎn)添加到WordPress多站點(diǎn)網(wǎng)絡(luò)

單擊添加新站點(diǎn)鏈接或按鈕將帶您到上面的屏幕,您可以在其中將新站點(diǎn)添加到您的多站點(diǎn)網(wǎng)絡(luò)。如果您不打算讓其他人成為新站點(diǎn)的管理員,您也可以將自己指定為管理員。

3. 用戶

網(wǎng)絡(luò)管理儀表盤中的“用戶”面板

網(wǎng)絡(luò)管理儀表盤中的“用戶”面板

網(wǎng)絡(luò)管理儀表板中的用戶屏幕允許您管理用戶并將新用戶添加到您的多站點(diǎn)網(wǎng)絡(luò)。只有超級(jí)管理員可以將用戶添加到網(wǎng)絡(luò),但超級(jí)管理員可以修改網(wǎng)絡(luò)設(shè)置以使站點(diǎn)管理員能夠?qū)⑿掠脩籼砑拥剿麄冏约旱恼军c(diǎn)。

4. 主題

網(wǎng)絡(luò)管理儀表盤中的“主題”面板

網(wǎng)絡(luò)管理儀表盤中的“主題”面板

主題屏幕可讓您管理站點(diǎn)管理員可訪問(wèn)的主題。它不允許您激活或停用任何網(wǎng)站正在使用的主題,而只能設(shè)置任何網(wǎng)站可以使用的主題。

如果您禁用網(wǎng)絡(luò)上任何地方都在使用的主題,即使您禁用它,它也會(huì)在該站點(diǎn)上保持活動(dòng)狀態(tài)。但如果站點(diǎn)使用另一個(gè)主題,則禁用的主題不會(huì)出現(xiàn)在網(wǎng)絡(luò)站點(diǎn)的主題面板中。

5. 插件

網(wǎng)絡(luò)管理儀表盤中的“插件”面板

網(wǎng)絡(luò)管理儀表盤中的“插件”面板

插件屏幕允許用戶添加或刪除網(wǎng)絡(luò)中的插件。添加后,您可以從站點(diǎn)的儀表板激活插件。您還可以從此處網(wǎng)絡(luò)激活插件,以強(qiáng)制在網(wǎng)絡(luò)中的所有站點(diǎn)上使用插件。

默認(rèn)情況下,站點(diǎn)管理員無(wú)法訪問(wèn)其儀表板中的插件菜單。超級(jí)管理員可以通過(guò)修改網(wǎng)絡(luò)設(shè)置為他們啟用此功能。

為所有子站點(diǎn)管理員啟用插件管理

為所有子站點(diǎn)管理員啟用插件管理

注意:并非所有WordPress插件都支持多站點(diǎn)網(wǎng)絡(luò)。您需要閱讀插件的文檔以確認(rèn)它們是否適用于多站點(diǎn)設(shè)置。

6.設(shè)置

網(wǎng)絡(luò)管理儀表盤中的“網(wǎng)絡(luò)設(shè)置”面板

網(wǎng)絡(luò)管理儀表盤中的“網(wǎng)絡(luò)設(shè)置”面板

您可以在網(wǎng)絡(luò)設(shè)置屏幕上設(shè)置和更改整個(gè)網(wǎng)絡(luò)的設(shè)置。網(wǎng)絡(luò)的默認(rèn)設(shè)置基于您在設(shè)置網(wǎng)絡(luò)時(shí)創(chuàng)建的第一個(gè)站點(diǎn)。您可以在此處更改的一些網(wǎng)絡(luò)設(shè)置是:

  • 操作設(shè)置
  • 注冊(cè)設(shè)置
  • 新站點(diǎn)設(shè)置
  • 上傳設(shè)置
  • 語(yǔ)言設(shè)定
  • 菜單設(shè)置

在這里,您還可以訪問(wèn)創(chuàng)建網(wǎng)絡(luò)時(shí)使用的網(wǎng)絡(luò)設(shè)置信息。您可以參考WordPress Codex中的網(wǎng)絡(luò)管理員設(shè)置屏幕,詳細(xì)了解所有可用設(shè)置選項(xiàng)。

7. 更新

網(wǎng)絡(luò)管理儀表盤中的“更新”面板

網(wǎng)絡(luò)管理儀表盤中的“更新”面板

您可以從更新屏幕控制網(wǎng)絡(luò)和單個(gè)站點(diǎn)的更新過(guò)程。更新面板將顯示可用于WordPress核心、主題和插件的任何更新。安裝最新版本的WordPress后,您可以通過(guò)升級(jí)網(wǎng)絡(luò)屏幕將其應(yīng)用到網(wǎng)絡(luò)上的所有站點(diǎn)。

網(wǎng)絡(luò)管理儀表盤中的“升級(jí)網(wǎng)絡(luò)”面板

網(wǎng)絡(luò)管理儀表盤中的“升級(jí)網(wǎng)絡(luò)”面板

注意:在WordPress單站點(diǎn)安裝中,管理員本質(zhì)上是超級(jí)管理員,因?yàn)樗麄兛梢栽L問(wèn)所有管理員權(quán)限。

您可以自定義用戶角色,也可以使用WordPress的預(yù)定義權(quán)限創(chuàng)建自己的自定義角色。

用戶角色和權(quán)限的優(yōu)勢(shì)

角色和權(quán)限系統(tǒng)是用戶管理WordPress的支柱。以下是它的許多好處:

  • 用戶角色可幫助您更有效地管理站點(diǎn)上的所有用戶。即使您的站點(diǎn)上有數(shù)十個(gè)用戶來(lái)自世界不同的地方,您也可以通過(guò)為每個(gè)人授予正確的角色來(lái)輕松地監(jiān)督他們。
  • 通過(guò)限制用戶使用特定權(quán)限,它可以幫助您使您的網(wǎng)站更加安全。例如,作者不能刪除他人的文章,編輯不能更改主題或安裝插件,訂閱者只能訪問(wèn)自己的個(gè)人資料。
  • WordPress插件可以檢查用戶是否具有某些權(quán)限,并在此基礎(chǔ)上執(zhí)行某些操作。WordPress current_user_can()?函數(shù)有助于執(zhí)行此檢查。例如,安全插件只能向管理員顯示其選項(xiàng)面板,但仍向所有用戶顯示安全警告。
  • 您可以編輯用戶角色以將您的某些角色職責(zé)委派給其他用戶,從而騰出時(shí)間。假設(shè)您的網(wǎng)站吸引了很多評(píng)論。在這種情況下,您可以允許受信任的作者進(jìn)行審核。作為管理員,您仍將保留最終權(quán)力,但您可以根據(jù)需要分擔(dān)一些責(zé)任。
  • 您可以使用權(quán)限檢查來(lái)顯示只有特定用戶角色才能查看的私人文章和頁(yè)面。這構(gòu)成了會(huì)員網(wǎng)站的基礎(chǔ)。
  • 您可以根據(jù)用戶角色顯示或隱藏站點(diǎn)上的前端元素(例如菜單項(xiàng)、小工具)。
  • 您可以創(chuàng)建具有自定義權(quán)限的自定義文章類型,并為每個(gè)用戶角色授予或拒絕這些權(quán)限。同樣,您還可以定義自定義權(quán)限以僅允許某些角色訪問(wèn)您的插件或主題設(shè)置。

如何有效管理WordPress用戶角色

了解所有用戶角色和權(quán)限至關(guān)重要,但您還需要了解如何在您的站點(diǎn)上有效地管理它們。雖然沒有兩個(gè)WordPress網(wǎng)站完全相同,但您可以遵循一些基本規(guī)則來(lái)充分利用WordPress的用戶角色和權(quán)限。

為每個(gè)用戶提供最少的訪問(wèn)權(quán)限

僅為您網(wǎng)站上的每個(gè)用戶分配他們需要的訪問(wèn)級(jí)別。授予更少的權(quán)限總是比授予太多權(quán)限要好。保護(hù)WordPress用戶角色對(duì)于確保您的網(wǎng)站及其內(nèi)容安全至關(guān)重要。

為每個(gè)用戶仔細(xì)分配用戶角色

為每個(gè)用戶仔細(xì)分配用戶角色

限制管理員和編輯的數(shù)量

作為一般規(guī)則,每個(gè)站點(diǎn)都應(yīng)該只有一個(gè)管理員,并且它應(yīng)該只對(duì)站點(diǎn)進(jìn)行核心更改。WordPress建議您遵守“最少權(quán)限原則”,即您應(yīng)該只授予用戶執(zhí)行其所需工作所必需的權(quán)限。

例如,最好使用編輯級(jí)別的用戶來(lái)管理網(wǎng)站上的內(nèi)容,而不是使用管理員。如果您的網(wǎng)站上有多個(gè)編輯器,請(qǐng)確保您可以信任他們的廣泛功能。

將作者角色分配給您可以信任的內(nèi)容創(chuàng)建者,因?yàn)樗麄兛梢园l(fā)布和刪除自己的文章。貢獻(xiàn)者角色更適合新的內(nèi)容創(chuàng)建者和來(lái)賓文章。

根據(jù)需要自定義用戶角色

默認(rèn)的WordPress用戶角色很有用,但它們可能并不適合每個(gè)用例。例如,讓您的作者能夠?qū)徍嗽u(píng)論。

值得慶幸的是,WordPress使我們能夠根據(jù)我們的獨(dú)特需求自定義用戶角色或創(chuàng)建新角色。您可以通過(guò)代碼或借助WordPress用戶角色插件手動(dòng)執(zhí)行此操作。我們將在本文中介紹這兩種方法。

在WordPress多站點(diǎn)網(wǎng)絡(luò)上管理用戶

WordPress Multisite包含用于用戶管理的獨(dú)特設(shè)置。其中一些很容易掌握,而另一些則不然。

讓我們深入探討它們。

多站點(diǎn)網(wǎng)絡(luò)注冊(cè)設(shè)置

開箱即用,只有超級(jí)管理員可以在網(wǎng)絡(luò)上創(chuàng)建新用戶和站點(diǎn)。但是,它們可以允許用戶將網(wǎng)絡(luò)上的帳戶注冊(cè)為子站點(diǎn)的訂閱者。

要啟用此功能,請(qǐng)轉(zhuǎn)到網(wǎng)絡(luò)管理員 > 網(wǎng)絡(luò)設(shè)置 > 注冊(cè)設(shè)置 > 允許新注冊(cè),然后啟用“用戶帳戶可能已注冊(cè)”選項(xiàng)。

允許用戶在您的網(wǎng)絡(luò)上注冊(cè)帳戶

允許用戶在您的網(wǎng)絡(luò)上注冊(cè)帳戶

在這里,您還可以允許登錄用戶在您的網(wǎng)絡(luò)上創(chuàng)建新站點(diǎn)。如果您想限制僅為您設(shè)置的用戶創(chuàng)建站點(diǎn)的能力,您可以勾選此選項(xiàng)。

最后一個(gè)選項(xiàng)允許用戶注冊(cè)一個(gè)帳戶以及在您的網(wǎng)絡(luò)上創(chuàng)建一個(gè)站點(diǎn)。在您的網(wǎng)絡(luò)上創(chuàng)建站點(diǎn)的用戶被賦予其子站點(diǎn)的管理員角色。

一個(gè)用戶帳戶訪問(wèn)整個(gè)網(wǎng)絡(luò)

當(dāng)您在網(wǎng)絡(luò)上創(chuàng)建用戶帳戶時(shí),或者當(dāng)用戶在您網(wǎng)絡(luò)的任何站點(diǎn)上注冊(cè)帳戶時(shí),他們可以在登錄后導(dǎo)航到網(wǎng)絡(luò)內(nèi)的任何站點(diǎn)。想象一下這是一個(gè)像Facebook或Reddit這樣的社交網(wǎng)絡(luò),您可以在其中創(chuàng)建一個(gè)帳戶并使用相同的用戶配置文件訪問(wèn)所有組或子版塊。

這是使用WordPress Multisite的主要好處之一。它允許您的用戶只需注冊(cè)一個(gè)帳戶即可訪問(wèn)您的所有網(wǎng)站。

向站點(diǎn)管理員授予額外權(quán)限

您可以通過(guò)勾選添加新用戶選項(xiàng)允許站點(diǎn)管理員將用戶添加到他們自己的站點(diǎn)。

允許站點(diǎn)管理員向其子站點(diǎn)添加新用戶

允許站點(diǎn)管理員向其子站點(diǎn)添加新用戶

如前所述,您可以授予站點(diǎn)管理員訪問(wèn)管理其子站點(diǎn)上的插件的權(quán)限,方法是轉(zhuǎn)到網(wǎng)絡(luò)設(shè)置 > 菜單設(shè)置并選中啟用管理菜單 > 插件選項(xiàng)。

子站點(diǎn)級(jí)用戶注冊(cè)

默認(rèn)情況下,WordPress多站點(diǎn)安裝僅允許用戶注冊(cè)整個(gè)網(wǎng)絡(luò)。沒有選項(xiàng)可以只為一個(gè)子站點(diǎn)啟用用戶注冊(cè)。您可以使用Network Subsite User Registration插件更改此行為。

“Network Subsite User Registration”插件

“Network Subsite User Registration”插件

此插件允許站點(diǎn)管理員啟用本地用戶注冊(cè),并且僅限訪問(wèn)其站點(diǎn)。默認(rèn)情況下,新用戶將擔(dān)任訂閱者角色,但您可以通過(guò)修改插件設(shè)置來(lái)更改此設(shè)置。

允許任何人僅在您的子網(wǎng)站上注冊(cè)帳戶

允許任何人僅在您的子網(wǎng)站上注冊(cè)帳戶

將同一用戶分配給多個(gè)子站點(diǎn)

您可以將同一用戶分配給網(wǎng)絡(luò)中具有唯一角色的多個(gè)站點(diǎn)。當(dāng)用戶登錄到其站點(diǎn)的儀表板時(shí),他們可以通過(guò)“我的站點(diǎn)”屏幕訪問(wèn)其所有站點(diǎn)的儀表板。

您可以將一個(gè)用戶分配到WordPress多站點(diǎn)網(wǎng)絡(luò)中的多個(gè)站點(diǎn)

您可以將一個(gè)用戶分配到WordPress多站點(diǎn)網(wǎng)絡(luò)中的多個(gè)站點(diǎn)

授予其他用戶超級(jí)管理員權(quán)限

超級(jí)管理員還可以與其他用戶共享他們的權(quán)限。您應(yīng)謹(jǐn)慎啟用此選項(xiàng),并僅將其分配給您可以信任的用戶。

授予其他用戶網(wǎng)絡(luò)的超級(jí)管理員權(quán)限

授予其他用戶網(wǎng)絡(luò)的超級(jí)管理員權(quán)限

了解WordPress Multisite中的所有用戶管理設(shè)置將幫助您更好地管理網(wǎng)絡(luò)。要為WordPress Multisite找到其他有用的插件,您可以在WordPress插件庫(kù)搜索安裝。

如何自定義現(xiàn)有的WordPress用戶角色

您可以向現(xiàn)有用戶角色添加權(quán)限以提高其訪問(wèn)級(jí)別。例如,您可以賦予編輯器管理插件的權(quán)力?;蛘?,也許您希望貢獻(xiàn)者對(duì)他們自己的文章進(jìn)行審核。讓我們學(xué)習(xí)如何做到這一點(diǎn)。

注意:如果您不喜歡使用代碼,您可以跳過(guò)手動(dòng)方法,直接轉(zhuǎn)到下面的用戶角色和權(quán)限插件部分?;蛘吒纱嗥刚?qǐng)WordPress開發(fā)人員。

如何向用戶角色添加權(quán)限

您可以使用WordPress add_cap()?函數(shù)向用戶角色或任何特定用戶添加權(quán)限。我將使用一個(gè)名為Customize User Role的自定義插件來(lái)展示如何使用此功能來(lái)賦予Editor角色管理插件的權(quán)限。


WordPress建議在插件或主題激活時(shí)運(yùn)行此函數(shù),因?yàn)樗砑拥脑O(shè)置存儲(chǔ)到數(shù)據(jù)庫(kù)中wp_options表中wp_user_roles字段下。每次加載任何頁(yè)面時(shí)都運(yùn)行此函數(shù)效率低下,因?yàn)槊看渭虞d頁(yè)面時(shí)數(shù)據(jù)庫(kù)表都會(huì)不斷被覆蓋。

由于我使用的是插件,因此我將使用register_activation_hook()函數(shù)掛鉤到您激活插件時(shí)運(yùn)行的動(dòng)作。有很多方法可以做到這一點(diǎn),但我使用了一個(gè)健壯的基于類的實(shí)現(xiàn)來(lái)確保沒有沖突。

// this code runs only during plugin activation and never again
function sal_customize_user_role() {
require_once plugin_dir_path( __FILE__ ).'includes/class-sal-customize-user-role.php';   
Sal_Customize_User_Role::activate();
}
register_activation_hook( __FILE__, 'sal_customize_user_role' );

上面的代碼在插件激活期間只運(yùn)行一次。鉤子函數(shù)sal_customize_user_role引用了一個(gè)名為Sal_Customize_User_Role自定義類.

我已經(jīng)在一個(gè)名為的單獨(dú)文件class-sal-customize-user-role.php中定義了這個(gè)類,并將它放在我的插件根文件夾中的一個(gè)名為includes的子文件夾中,但你可以隨意命名它。

add_cap( $cap );
}
}
}

下面是對(duì)上述代碼的詳細(xì)解釋:

  • 首先定義您在主插件文件中引用的類及其函數(shù)。
  • get_role(‘editor’)函數(shù)從WP_Role類中檢索Editor角色對(duì)象并將其分配給$editor變量。
  • 管理插件需要四個(gè)權(quán)限:install_plugins、activate_plugins、edit_pluginsdelete_plugins。但是add_cap()函數(shù)只接受一個(gè)參數(shù)。因此,我們需要在數(shù)組中包含所有權(quán)限。定義$caps數(shù)組以容納所有這些權(quán)限。如果您只添加一項(xiàng)權(quán)限,則無(wú)需定義數(shù)組。
  • add_cap( $cap )函數(shù)通過(guò)使用PHP函數(shù)foreach ()循環(huán)添加$caps數(shù)組中定義的所有權(quán)限。

保存所有插件文件,然后從管理員儀表板激活插件。現(xiàn)在讓我們登錄到編輯器儀表盤以查看更改。

編輯者現(xiàn)在可以從他們的儀表板管理插件

編輯者現(xiàn)在可以從他們的儀表板管理插件

將與插件相關(guān)的功能添加到其用戶角色后,編輯者可以看到其管理菜單中列出的插件菜單。

編輯器儀表盤中的“添加插件”屏幕

編輯器儀表盤中的“添加插件”屏幕

您可以通過(guò)查看存儲(chǔ)在WordPress站點(diǎn)數(shù)據(jù)庫(kù)wp_options表中的wp_user_roles鍵值來(lái)檢查分配給每個(gè)用戶角色的權(quán)限。

以下是我發(fā)現(xiàn)分配給編輯角色的權(quán)限:

'editor' => 
array (
'name' => 'Editor',
'capabilities' => 
array (
'moderate_comments' => true,
'manage_categories' => true,
// [...lines cut off for brevity...]
'install_plugins' => true,
'activate_plugins' => true,
'edit_plugins' => true,
),
),

請(qǐng)注意最后三行,它使編輯器能夠管理插件。

如果要?jiǎng)h除這些權(quán)限,可以掛鉤到register_deactivation_hook()函數(shù)并使用remove_cap()函數(shù)刪除插件停用的權(quán)限,就像我們?cè)诓寮せ顣r(shí)添加這些權(quán)限一樣。

既然您已經(jīng)了解了如何向用戶角色添加權(quán)限,那么現(xiàn)在該學(xué)習(xí)如何從用戶角色中刪除權(quán)限了。

注意:您還可以掛鉤after_switch_theme動(dòng)作以在主題(和/或子主題)激活期間觸發(fā)此代碼。在這里,您必須在主題或子主題的(推薦)functions.php文件中包含代碼。

如何從用戶角色中刪除權(quán)限

有時(shí),您可能希望從用戶角色中刪除一項(xiàng)權(quán)限。您可以運(yùn)行remove_cap()函數(shù)來(lái)刪除角色或特定用戶的權(quán)限。例如,delete_published_posts從Author用戶角色中刪除發(fā)布文章權(quán)限是一個(gè)好主意。

讓我們完成這件事!

我將創(chuàng)建一個(gè)名為Customize Author Role的新自定義插件來(lái)開始。就像以前一樣,我將通過(guò)掛鉤register_activation_hook()函數(shù)只運(yùn)行此代碼一次。


接下來(lái),我將在文件中定義Sal_Customize_Author_Role類。我在上面的主插件文件class-sal-customize-author-role.php中引用了這兩個(gè)資源。

remove_cap( 'delete_published_posts' );
}
}

remove_cap( 'delete_published_posts' )函數(shù)將刪除從作者角色中刪除已發(fā)布文章的權(quán)限。

默認(rèn)情況下,允許作者刪除其已發(fā)布的文章

默認(rèn)情況下,允許作者刪除其已發(fā)布的文章

是時(shí)候保存所有插件文件然后激活插件了?,F(xiàn)在,登錄到作者儀表盤并查看更改。

作者不能再刪除他們發(fā)布的文章

作者不能再刪除他們發(fā)布的文章

回收站選項(xiàng)不再適用于作者發(fā)布的文章。但是,他們?nèi)匀豢梢詣h除處于草稿待處理狀態(tài)的未發(fā)布文章。

刪除處于草稿或待處理狀態(tài)的未發(fā)布文章

如果您甚至想禁用此權(quán)限,則還需要從作者角色中刪除delete_posts權(quán)限。

為特定用戶添加或刪除權(quán)限

如果您想為特定用戶添加權(quán)限,而不是整個(gè)用戶角色,那么您可以使用WP_User::add_cap()類函數(shù)來(lái)添加權(quán)限。

// get the user object by their ID
$user = new WP_User( $user_id ); 
// add the capability to the specific user
$user->add_cap( $cap );

您可以使用get_user_by()函數(shù)通過(guò)使用他們的電子郵件、登錄用戶名或slug來(lái)檢索任何用戶的ID。

同樣,您可以使用WP_User::remove_cap()類函數(shù)從特定用戶中刪除權(quán)限。

// get the user object by their ID
$user = new WP_User( $user_id );
// add the capability to the specific user
$user->add_cap( $cap );

像以前一樣,僅在插件或主題激活時(shí)運(yùn)行這些權(quán)限以保持代碼優(yōu)化。

注意:add_cap()remove_cap()都是WP_Role類的對(duì)象方法。您不能直接在代碼中調(diào)用它們。您需要使用get_role()函數(shù)或$wp_roles全局變量來(lái)訪問(wèn)它們。

復(fù)制用戶角色

您可以通過(guò)克隆現(xiàn)有用戶角色的所有權(quán)限來(lái)創(chuàng)建新用戶角色。您可以這樣做:

add_role( 'clone', 'Clone', get_role( 'administrator' )->capabilities );

在上面的示例中,我正在創(chuàng)建一個(gè)名為Clone的新角色,該角色具有與管理員相同的權(quán)限。在主題或插件激活上運(yùn)行此代碼將確保克隆的角色僅添加一次。

如何在WordPress中創(chuàng)建自定義用戶角色

默認(rèn)用戶角色的編??輯權(quán)限是自定義它們的快速方法。但是,如果您要編輯角色的許多權(quán)限,那么最好完全創(chuàng)建一個(gè)新的自定義用戶角色。通過(guò)這種方式,您可以為站點(diǎn)上的每個(gè)角色設(shè)置所需的確切權(quán)限。

要?jiǎng)?chuàng)建自定義用戶角色,您需要使用add_role()函數(shù)。它接受三個(gè)參數(shù)。

add_role(  $role, $display_name, $capabilities );

前兩個(gè)參數(shù)應(yīng)該是函數(shù)運(yùn)行的字符串(并且是必需的)。它們分別定義新自定義角色的名稱和顯示名稱。最后一個(gè)參數(shù)是可選的,應(yīng)該是一個(gè)數(shù)組。您可以使用它為新角色分配所有權(quán)限。

讓我們創(chuàng)建一個(gè)名為Community Manager的自定義用戶角色,他可以在整個(gè)站點(diǎn)中審核評(píng)論和編輯文章。以下是您的操作方法:

 true,
'moderate_comments' => true,
'edit_posts' => true,
'edit_other_posts' => true,
'edit_published_posts' => true
)
);
}
register_activation_hook( __FILE__, 'add_community_manager_role' );

和以前一樣,add_role()函數(shù)僅在插件激活時(shí)運(yùn)行一次,并且不再運(yùn)行。保存文件并在管理員儀表盤中激活插件。您現(xiàn)在應(yīng)該能夠?qū)?strong>Community Manager角色分配給新用戶和現(xiàn)有用戶。

將自定義用戶角色分配給新用戶

將自定義用戶角色分配給新用戶

將自定義用戶角色分配給現(xiàn)有用戶

將自定義用戶角色分配給現(xiàn)有用戶

您還可以通過(guò)檢查數(shù)據(jù)庫(kù)中wp_options表下wp_user_roles字段的值來(lái)驗(yàn)證分配給此新角色的權(quán)限。這是我在我網(wǎng)站的數(shù)據(jù)庫(kù)中找到的內(nèi)容:

array (
'administrator' => 
// [...]
'editor' => 
// [...]
'author' => 
// [...]
'contributor' => 
// [...]
'subscriber' => 
// [...]
'community_manager' => 
array (
'name' => 'Community Manager',
'capabilities' => 
array (
'read' => true,
'moderate_comments' => true,
'edit_posts' => true,
'edit_other_posts' => true,
'edit_published_posts' => true,
),
),
)

最后列出的是我們剛剛添加的具有所有權(quán)限的新角色。您可以通過(guò)添加或刪除權(quán)限來(lái)進(jìn)一步編輯此角色。

測(cè)試新用戶角色

在將新用戶角色分配給任何真實(shí)用戶之前,必須測(cè)試它是否按預(yù)期工作。這是一個(gè)清單,您可以按照以下清單對(duì)其進(jìn)行測(cè)試:

  1. 創(chuàng)建一個(gè)測(cè)試用戶帳戶并為其分配新的用戶角色。
  2. 使用測(cè)試用戶登錄并確保其所有權(quán)限都按預(yù)期工作。例如,如果您已授予它編輯已發(fā)布文章的權(quán)限,則轉(zhuǎn)到任何文章并檢查您是否可以編輯它。您分配給該角色的能力越多,您將花費(fèi)更多的時(shí)間來(lái)測(cè)試它們。
  3. 接下來(lái),嘗試直接在瀏覽器中訪問(wèn)任何更高級(jí)別的管理鏈接。我通過(guò)直接訪問(wèn)WordPress設(shè)置屏幕對(duì)此進(jìn)行了測(cè)試,正如預(yù)期的那樣,WordPress沒有讓我進(jìn)入。WordPress顯示的“拒絕訪問(wèn)”消息
  4. 完成測(cè)試后刪除測(cè)試用戶。

差不多就是這樣!現(xiàn)在您可以將新角色分配給您站點(diǎn)的用戶。

您可以使用User Switching或以View Admin As插件,只需單擊一下即可在您網(wǎng)站上的不同用戶帳戶之間進(jìn)行切換。它們對(duì)于測(cè)試多個(gè)用戶的權(quán)限非常方便。我將在本文后面詳細(xì)介紹它們。

在WordPress多站點(diǎn)中創(chuàng)建自定義用戶角色

WordPress多站點(diǎn)處理用戶角色的方式與WordPress單站點(diǎn)安裝略有不同。雖然您可以像以前一樣使用add_role()函數(shù)創(chuàng)建自定義用戶角色,但新角色僅適用于網(wǎng)絡(luò)的主站點(diǎn)(您創(chuàng)建的第一個(gè)站點(diǎn))。它不會(huì)傳播到網(wǎng)絡(luò)上的所有子站點(diǎn)。

為確?;卣{(diào)函數(shù)中的代碼在網(wǎng)絡(luò)中的每個(gè)站點(diǎn)上運(yùn)行,您需要通過(guò)逐個(gè)循環(huán)遍歷網(wǎng)絡(luò)的所有站點(diǎn)來(lái)強(qiáng)制其執(zhí)行。對(duì)于這個(gè)示例,我將創(chuàng)建一個(gè)名為Plugin Manager的新用戶角色,它將具有管理插件的所有權(quán)限。

'ids']) as $blog_id ) {
switch_to_blog( $blog_id );
add_role(
'plugin_manager',
__('Plugin Manager', 'add-plugin-manager-role'),
array( 
'install_plugins' => true,
'activate_plugins' => true,
'edit_plugins' => true,
'delete_plugins' => true
)
);
}
restore_current_blog();
}
else {
add_role(
'plugin_manager',
__('Plugin Manager', 'add-plugin-manager-role'),
array( 
'install_plugins' => true,
'activate_plugins' => true,
'edit_plugins' => true,
'delete_plugins' => true
)
);
}
}
register_activation_hook( __FILE__, 'add_plugin_manager_role' );

讓我們?cè)敿?xì)看一下上面的代碼:

  • 首先,您使用register_activation_hook()函數(shù)掛鉤插件激活動(dòng)作并傳入您的回調(diào)函數(shù)。這里,回調(diào)函數(shù)是add_plugin_manager_role().
  • 然后你定義你的回調(diào)函數(shù),并傳入一個(gè)名為$network_wide的參數(shù).
  • $network_wide參數(shù)是一個(gè)布爾值,如果您為整個(gè)網(wǎng)絡(luò)激活了插件,它將返回true。如果僅為當(dāng)前站點(diǎn)啟用,則返回false。此外,它僅適用于多站點(diǎn)安裝,其默認(rèn)值為false
  • is_multisite() && $network_wide條件語(yǔ)句檢查插件在多站點(diǎn)安裝中是否為“網(wǎng)絡(luò)激活”?。如果是true,它將運(yùn)行If語(yǔ)句中包含的代碼。如果是false,則運(yùn)行語(yǔ)句中else的代碼。
  • get_sites(['fields'=>'ids'])函數(shù)返回網(wǎng)絡(luò)中所有站點(diǎn)ID的列表。使用foreach()PHP函數(shù),它循環(huán)遍歷所有這些代碼,以分別在每個(gè)網(wǎng)站上運(yùn)行代碼。
  • ?switch_to_blog( $blog_id )函數(shù)指示接下來(lái)的幾行代碼為$blog_id的子網(wǎng)站執(zhí)行。由于WordPress最初是作為一個(gè)博客平臺(tái)啟動(dòng)的,因此您可以將“blog”一詞替換為“site”,以便更好地理解其用法。
  • 接下來(lái),您使用add_role()函數(shù)創(chuàng)建具有其權(quán)限的自定義用戶角色。這遵循與本文前面解釋的相同的代碼約定。
  • 在終止循環(huán)之前,定義restore_current_blog()函數(shù)以確保您將切換的站點(diǎn)狀態(tài)恢復(fù)到其原始狀態(tài)。
  • else語(yǔ)句中的代碼是確保與單站點(diǎn)安裝兼容的備用代碼。

保存插件文件并轉(zhuǎn)到網(wǎng)絡(luò)管理 > 插件屏幕以“網(wǎng)絡(luò)激活”您的自定義插件。之后,前往站點(diǎn)的任何編輯站點(diǎn)屏幕下的用戶選項(xiàng)卡,檢查新的插件管理器角色是否可用。

將現(xiàn)有站點(diǎn)用戶的角色更改為新用戶角色

將現(xiàn)有站點(diǎn)用戶的角色更改為新用戶角色

將自定義用戶角色分配給子站點(diǎn)的新用戶

將自定義用戶角色分配給子站點(diǎn)的新用戶

我還確認(rèn)了這個(gè)新用戶角色在網(wǎng)絡(luò)中的其他站點(diǎn)上可用。它完美無(wú)缺。

將新用戶角色分配給子站點(diǎn)上的現(xiàn)有用戶

將新用戶角色分配給子站點(diǎn)上的現(xiàn)有用戶

您還可以通過(guò)查看您站點(diǎn)的數(shù)據(jù)庫(kù)來(lái)驗(yàn)證新的自定義角色及其權(quán)限。但是,與單站點(diǎn)安裝不同,WordPress Multisite為每個(gè)子站點(diǎn)創(chuàng)建一個(gè)單獨(dú)的wp_options表。

用戶角色存儲(chǔ)在WordPress多站點(diǎn)數(shù)據(jù)庫(kù)中的位置

用戶角色存儲(chǔ)在WordPress多站點(diǎn)數(shù)據(jù)庫(kù)中的位置

您可以找到列為wp_2_optionswp_3_optionswp_4_options的子網(wǎng)站特定表。同樣,角色和權(quán)限存儲(chǔ)在各自的字段中,分別名為wp_2_user_roleswp_3_user_roleswp_4_user_roles。

您已經(jīng)定義了如何在網(wǎng)絡(luò)中的所有站點(diǎn)上創(chuàng)建自定義用戶角色,但是將來(lái)要?jiǎng)?chuàng)建的站點(diǎn)呢?為確保將此自定義用戶角色添加到網(wǎng)絡(luò)中創(chuàng)建的每個(gè)新站點(diǎn),您可以將以下代碼附加到您的插件中:

// run the code once again when a new site is created
function add_custom_user_role_new_site( $blog_id ) { 
// check whether the plugin is active for the network
if ( is_plugin_active_for_network( 'add-custom-user-role/add-custom-user-role.php' ) ) {
switch_to_blog( $blog_id );
add_role(
'plugin_manager',
__('Plugin Manager', 'add-plugin-manager-role'),
array( 
'install_plugins' => true,
'activate_plugins' => true,
'edit_plugins' => true,
'delete_plugins' => true
)
);
restore_current_blog();
}
}
add_action( 'wpmu_new_blog', 'add_custom_user_role_new_site' );
  • 每當(dāng)有人在多站點(diǎn)網(wǎng)絡(luò)中創(chuàng)建新站點(diǎn)時(shí),wpmu_new_blog動(dòng)作就會(huì)觸發(fā)。您可以使用回調(diào)函數(shù)掛鉤此操作以添加自定義用戶角色。
  • is_plugin_active_for_network?()函數(shù)檢查插件是否對(duì)整個(gè)網(wǎng)絡(luò)都處于活動(dòng)狀態(tài),并返回一個(gè)布爾值。它接受插件文件的路徑作為參數(shù)。
  • 其余代碼遵循與之前相同的邏輯。您使用$blog_id參數(shù)切換到新站點(diǎn),使用add_role()函數(shù)創(chuàng)建您的自定義角色,然后使用restore_current_blog()函數(shù)切換回當(dāng)前站點(diǎn)。

如何從WordPress中刪除用戶角色

您可以使用remove_role( )函數(shù)從WordPress中刪除任何用戶角色。它只接受一個(gè)參數(shù),即角色名稱。例如,您可以通過(guò)在站點(diǎn)的任何位置運(yùn)行以下代碼來(lái)刪除貢獻(xiàn)者角色:

remove_role( 'contributor' );

與未在插件或主題激活時(shí)運(yùn)行的函數(shù)將不斷更新數(shù)據(jù)庫(kù)不同,

add_role()函數(shù)不同,如果不是在插件或主題激活上運(yùn)行,它會(huì)不斷更新數(shù)據(jù)庫(kù),remove_role()函數(shù)僅在角色存在時(shí)執(zhí)行。由于作為參數(shù)傳入的任何角色在第一次運(yùn)行時(shí)都會(huì)被刪除,因此您不必?fù)?dān)心在何處運(yùn)行此函數(shù)。

但是,為避免將來(lái)發(fā)生沖突,請(qǐng)?jiān)趶臄?shù)據(jù)庫(kù)中刪除角色后刪除代碼。

在WordPress中創(chuàng)建自定義權(quán)限

對(duì)于大多數(shù)用例來(lái)說(shuō),使用WordPress的內(nèi)置權(quán)限編輯現(xiàn)有用戶角色和創(chuàng)建新的自定義角色就足夠了,但您可能希望為自定義代碼(使用插件或主題)引入的功能定義新權(quán)限。

然后,您可以使用這些自定義權(quán)限來(lái)定義新角色或?qū)⑺鼈兲砑拥浆F(xiàn)有角色中。

例如,WooCommerce添加了額外的權(quán)限和角色以及其廣泛的電子商務(wù)權(quán)限。它添加的一些權(quán)限是:

  • 允許管理WooCommerce設(shè)置
  • 創(chuàng)建和編輯產(chǎn)品
  • 查看WooCommerce報(bào)告

使用這些權(quán)限,它添加了兩個(gè)新的用戶角色:CustomerShop Manager

WooCommerce添加自己的用戶角色

WooCommerce添加自己的用戶角色

客戶角色與訂閱者角色幾乎相似,不同之處在于具有客戶角色的用戶可以編輯其帳戶信息并查看當(dāng)前/過(guò)去的訂單。Shop Manager角色包括編輯器的所有權(quán)限,此外還授予他們所有WooCommerce權(quán)限。

其他引入自定義權(quán)限和/或角色的插件包括The Events Calendar、Visual Portfolio、WPML和WP ERP。

如果您深入研究所有這些插件的文檔,您會(huì)注意到它們幾乎將所有自定義權(quán)限都與它們定義的自定義文章類型聯(lián)系在一起。在WooCommerce的情況下,它是ProductsOrders自定義文章類型,而在其他情況下,它分別是Events、PortfoliosTranslationsCustomers。

讓我們學(xué)習(xí)如何創(chuàng)建綁定到自定義文章類型的自定義權(quán)限。

首先,設(shè)置一個(gè)插件并注冊(cè)您想要的自定義文章類型。在我的示例中,我正在注冊(cè)一個(gè)名為Stories的新自定義文章類型。

 _x( 'Stories', 'custom-post-type-capabilities' ),
'singular_name'         => _x( 'Story', 'custom-post-type-capabilities' ),
'menu_name'             => _x( 'Stories', 'Admin Menu text', 'custom-post-type-capabilities' ),
'name_admin_bar'        => _x( 'Story', 'Add New on Toolbar', 'custom-post-type-capabilities' ),
'add_new'               => __( 'Add New', 'custom-post-type-capabilities' ),
'add_new_item'          => __( 'Add New Story', 'custom-post-type-capabilities' ),
'new_item'              => __( 'New Story', 'custom-post-type-capabilities' ),
'edit_item'             => __( 'Edit Story', 'custom-post-type-capabilities' ),
'view_item'             => __( 'View Story', 'custom-post-type-capabilities' ),
'all_items'             => __( 'All Stories', 'custom-post-type-capabilities' ),
'search_items'          => __( 'Search Stories', 'custom-post-type-capabilities' ),
'parent_item_colon'     => __( 'Parent Stories:', 'custom-post-type-capabilities' ),
'not_found'             => __( 'No stories found.', 'custom-post-type-capabilities' ),
'not_found_in_trash'    => __( 'No stories found in Trash.', 'custom-post-type-capabilities' ),
'featured_image'        => _x( 'Story Cover Image', 'custom-post-type-capabilities' ),
'set_featured_image'    => _x( 'Set cover image', 'custom-post-type-capabilities' ),
'remove_featured_image' => _x( 'Remove cover image', 'custom-post-type-capabilities' ),
'use_featured_image'    => _x( 'Use as cover image', 'custom-post-type-capabilities' ),
'archives'              => _x( 'Story archives', 'custom-post-type-capabilities' ),
'insert_into_item'      => _x( 'Insert into story', 'custom-post-type-capabilities' ),
'uploaded_to_this_item' => _x( 'Uploaded to this story', 'custom-post-type-capabilities' ),
'filter_items_list'     => _x( 'Filter stories list', 'custom-post-type-capabilities' ),
'items_list_navigation' => _x( 'Stories list navigation', 'custom-post-type-capabilities' ),
'items_list'            => _x( 'Stories list', 'custom-post-type-capabilities' ),
);
$args = array(
'labels'             => $labels,
'public'             => true,
'menu_icon'          => 'dashicons-book',   
'publicly_queryable' => true,
'show_ui'            => true,
'show_in_menu'       => true,
'query_var'          => true,
'rewrite'            => array( 'slug' => 'story' ),
'capability_type'    => array ( 'story', 'stories' ),
'map_meta_cap'       => true,
'has_archive'        => true,
'hierarchical'       => false,
'menu_position'      => 6,
'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
'show_in_rest'       => true,
);
register_post_type( 'story', $args );
}
add_action( 'init', 'cpt_story_init' );

以下是上述腳本的細(xì)分:

  • 使用register_post_type()函數(shù)來(lái)注冊(cè)您的自定義文章類型。您可以掛鉤到init動(dòng)作以運(yùn)行此函數(shù)。
  • register_post_type()函數(shù)接受兩個(gè)參數(shù)。第一個(gè)是自定義文章類型的名稱,第二個(gè)是包含用于注冊(cè)文章類型的所有參數(shù)的數(shù)組。
  • $args變量包含您將傳遞給register_post_type()函數(shù)的所有參數(shù)。它的一個(gè)參數(shù)(‘labels’)本身就是一個(gè)單獨(dú)定義為$label變量的數(shù)組。
  • 請(qǐng)注意'capability_type' => 'post'參數(shù)。它是WordPress用于為自定義文章類型構(gòu)建讀取、編輯和刪除的默認(rèn)權(quán)限類型。
  • 要?jiǎng)?chuàng)建自定義權(quán)限,您需要將capability_type參數(shù)的值替換為自定義權(quán)限的首選名稱。它接受字符串或數(shù)組作為參數(shù)。如果您的自定義權(quán)限的復(fù)數(shù)不遵循標(biāo)準(zhǔn)的s后綴語(yǔ)法(例如book/books vs story/stories),該數(shù)組很有用。
  • 您還可以使用capabilities參數(shù)以不同于WordPress自動(dòng)命名的方式命名新權(quán)限。
  • 您必須將您的自定義權(quán)限映射到WordPress的原始權(quán)限。將map_meta_cap參數(shù)設(shè)置為,true以便WordPress知道它需要按照建議映射自定義權(quán)限。

接下來(lái),您需要將自定義權(quán)限添加到要授予對(duì)Stories自定義文章類型的訪問(wèn)權(quán)限的角色。對(duì)于此示例,我將權(quán)限授予管理員和編輯者角色。

// add the custom capabilities to the desired user roles 
$roles = array( 'editor','administrator' );
foreach( $roles as $the_role ) {      
$role = get_role($the_role);
$role->add_cap( 'read' );
$role->add_cap( 'read_story');
$role->add_cap( 'read_private_stories' );
$role->add_cap( 'edit_story' );
$role->add_cap( 'edit_stories' );
$role->add_cap( 'edit_others_stories' );
$role->add_cap( 'edit_published_stories' );
$role->add_cap( 'publish_stories' );
$role->add_cap( 'delete_others_stories' );
$role->add_cap( 'delete_private_stories' );
$role->add_cap( 'delete_published_stories' );
}

保存文件,然后激活插件。您現(xiàn)在應(yīng)該在管理員或編輯器儀表盤中看到Stories鏈接和面板。

WordPress儀表盤中的“Stories”自定義文章類型面板

WordPress儀表盤中的“Stories”自定義文章類型面板

如果您檢查站點(diǎn)上可用的權(quán)限,您還將看到我們添加的所有與Stories相關(guān)的權(quán)限。在這里,我使用View Admin As插件來(lái)檢查權(quán)限。

與“Stories”自定義文章類型相關(guān)的自定義權(quán)限

與“Stories”自定義文章類型相關(guān)的自定義權(quán)限

您可以通過(guò)Gist下載此插件的擴(kuò)展版本。它使用一組自定義權(quán)限注冊(cè)了一個(gè)名為Projects的自定義文章類型。然后,它會(huì)將他們分配給名為StudentTeachers的兩個(gè)自定義角色,?以幫助您建立一個(gè)教育網(wǎng)站。

有一種方法可以定義自定義權(quán)限,允許用戶根據(jù)他們的角色訪問(wèn)您的插件設(shè)置。討論如何執(zhí)行此操作超出了本文的范圍,但您可以參考StackExchange上的關(guān)于此內(nèi)容的文章以獲取更多信息。

最好的WordPress用戶角色和權(quán)限插件

知道如何使用代碼調(diào)整用戶角色和權(quán)限固然很棒,但并不適合所有人。如果您不確定自己在做什么,那么很多事情都會(huì)出錯(cuò)。但是,即使您使用的是插件,了解角色和權(quán)限在WordPress中的工作方式也會(huì)有很大幫助。

讓我們看一些最流行的WordPress插件,以輕松自定義WordPress用戶角色和權(quán)限。我還將列出一些有用的插件來(lái)快速測(cè)試角色和權(quán)限特性。

User Role Editor (by Vladimir Garagulia)

WordPress插件-User Role Editor

WordPress插件-User Role Editor

User Role Editor是WordPress插件庫(kù)中最流行的角色和能力管理插件。它帶有一個(gè)簡(jiǎn)單的界面,允許任何人只需單擊一下即可編輯用戶角色和權(quán)限。

安裝并激活插件后,您可以轉(zhuǎn)到管理儀表板中的用戶 > User Role Editor以訪問(wèn)其主界面。

User Role Editor儀表盤

User Role Editor儀表盤

以下是上面標(biāo)記的儀表盤部分的詳細(xì)概述:

  1. 從下拉菜單中選擇要自定義的角色。它不僅會(huì)列出默認(rèn)角色,還會(huì)列出數(shù)據(jù)庫(kù)中存在的所有角色。您還可以選擇以人類可讀的形式而不是它們的常量來(lái)顯示權(quán)限。另一個(gè)選項(xiàng)可讓您查看最新版本的WordPress不再支持的已棄用功能。
  2. 用戶角色編輯器將所有權(quán)限分組到左側(cè)的不同類別中。核心類別包括所有內(nèi)置權(quán)限。由于我在此站點(diǎn)上安裝了WooCommerce,因此您還可以找到其自定義文章類型的權(quán)限。甚至User Role Editor插件也添加了自己的一組自定義權(quán)限。
  3. 在右側(cè),您會(huì)發(fā)現(xiàn)列出的所有權(quán)限。當(dāng)我選擇了All組時(shí),我可以看到所有權(quán)限。但是,您可以通過(guò)單擊左側(cè)的組來(lái)過(guò)濾它。您還可以勾選頂部的僅授予選項(xiàng)以隱藏任何用戶角色未使用的所有權(quán)限。
  4. 您還可以從此處Add RoleRename Role、Add CapabilityDelete Role。在最底部,您會(huì)發(fā)現(xiàn)隱藏用戶角色的管理欄的附加選項(xiàng)。

以人類可讀的形式顯示權(quán)限

以人類可讀的形式顯示權(quán)限

要自定義任何用戶角色,只需勾選或取消勾選您想要的權(quán)限,然后單擊Update按鈕以保存您的更改。就這么容易。

在User Role Editor中添加新角色

在User Role Editor中添加新角色

單擊Add Role按鈕以創(chuàng)建新角色。您可以使用Make copy of下拉選項(xiàng)從頭開始創(chuàng)建角色或復(fù)制現(xiàn)有角色。

輕松重命名“角色顯示名稱”

輕松重命名“角色顯示名稱”

您還可以通過(guò)單擊Rename Role按鈕來(lái)重命名Role Display Name但是,您不能更改其Role ID(或角色名稱)。一種解決方法是復(fù)制要更改其ID的角色,然后刪除原始角色。

在User Role Editor中添加新權(quán)限

在User Role Editor中添加新權(quán)限

您可以通過(guò)單擊Add Capability按鈕來(lái)添加新權(quán)限。

輕松刪除未分配的用戶角色

輕松刪除未分配的用戶角色

單擊Delete Roles按鈕可讓您刪除尚未分配給任何用戶的自定義角色。

注意:User Role Editor不允許您刪除WordPress的內(nèi)置角色或權(quán)限。如果它分配給任何用戶,它也不允許您刪除任何自定義角色,如果它分配給任何非管理員角色,它也不允許您刪除任何自定義權(quán)限。

User Role Editor中的“Delete Capability”按鈕

User Role Editor中的“Delete Capability”按鈕

您應(yīng)該注意,僅當(dāng)未將任何權(quán)限分配給非管理員時(shí),才會(huì)顯示Delete Capability按鈕。否則它是隱藏的。

您還可以為同一用戶分配多個(gè)角色,或者根本不給他們?nèi)魏谓巧?/p>

剝離用戶的任何角色

剝離用戶的任何角色

要為用戶分配多個(gè)角色,您需要轉(zhuǎn)到儀表板中的“Users”面板,然后單擊將鼠標(biāo)懸停在用戶名上后將在下面看到的“Capabilities鏈接。

為同一用戶分配多個(gè)角色

為同一用戶分配多個(gè)角色

如果您在管理儀表盤中轉(zhuǎn)到Settings > User Role Editor,您還將找到用戶角色編輯器插件的其他選項(xiàng)。

User Role Editor的“General”選項(xiàng)選項(xiàng)卡

User Role Editor的“General”選項(xiàng)選項(xiàng)卡

在這里,您可以更改插件的默認(rèn)設(shè)置、安裝附加模塊、更改分配給新用戶的默認(rèn)角色,甚至將用戶角色和權(quán)限重置為默認(rèn)狀態(tài)。

附加模塊可幫助您擴(kuò)展User Role Editor的功能

附加模塊可幫助您擴(kuò)展User Role Editor的功能

為新用戶設(shè)置默認(rèn)角色

為新用戶設(shè)置默認(rèn)角色

將所有用戶角色和權(quán)限重置為其默認(rèn)狀態(tài)

將所有用戶角色和權(quán)限重置為其默認(rèn)狀態(tài)

雖然User Role Editor的免費(fèi)版本對(duì)于大多數(shù)用例來(lái)說(shuō)已經(jīng)綽綽有余,但其高級(jí)版本包括更多功能,包括支持在WordPress多站點(diǎn)設(shè)置中管理角色和權(quán)限。

Members by MemberPress

MemberPress開放的WordPress插件-Members

MemberPress開放的WordPress插件-Members

Members是WordPress的一個(gè)以會(huì)員為中心的用戶角色和權(quán)限插件。最初作為一個(gè)簡(jiǎn)單的用戶角色和權(quán)限管理插件推出,它后來(lái)轉(zhuǎn)向會(huì)員功能。

Members中的“Roles”面板

Members中的“Roles”面板

安裝并激活插件后,您可以通過(guò)轉(zhuǎn)到儀表板中的Members> Roles來(lái)查看站點(diǎn)上的所有可用角色。

成員插件允許您刪除所有角色,包括內(nèi)置的WordPress角色,除了管理員和默認(rèn)角色。您還可以EditClone角色,以及列出分配給特定角色的所有用戶。

Members中的“Edit Role”面板

Members中的“Edit Role”面板

在“Edit Role”面板中,您可以通過(guò)勾選和取消勾選相關(guān)復(fù)選框來(lái)授予或明確拒絕特定角色的權(quán)限。您還可以從此處向角色添加自定義權(quán)限。

Members中的“Add New Role”面板

Members中的“Add New Role”面板

單擊“Add New Role鏈接將帶您進(jìn)入一個(gè)類似的屏幕,您可以在其中通過(guò)給它一個(gè)顯示名稱、一個(gè)ID和它的一組權(quán)限來(lái)創(chuàng)建一個(gè)新角色。

Members中的“General Settings”面板

Members中的“General Settings”面板

就像使用User Role Editor一樣,您可以使用Members為用戶分配多個(gè)角色。您還可以設(shè)置內(nèi)容權(quán)限以將內(nèi)容限制為僅具有特定角色的用戶。

您還可以在Members中啟用“Private Site”模式

您還可以在Members中啟用“Private Site”模式

在這里,您可以將您的網(wǎng)站及其提要設(shè)置為私有。此外,您可以通過(guò)強(qiáng)制身份驗(yàn)證來(lái)限制對(duì)WordPress的REST API的訪問(wèn)。

Members插件的各種附加組件

Members插件的各種附加組件

Members插件以其驚人的附加組件與其他角色和權(quán)限插件區(qū)分開來(lái)。它們可幫助您向網(wǎng)站添加大量附加權(quán)限,例如用戶隱私和個(gè)人數(shù)據(jù)管理 ( GDPR?)、與標(biāo)簽和類別相關(guān)的權(quán)限、建立角色層次結(jié)構(gòu)等等。

Members與流行的WordPress插件集成

Members與流行的WordPress插件集成

您可以將Members與許多流行的WordPress插件無(wú)縫集成。例如,您可以使用它來(lái)創(chuàng)建和管理高級(jí)自定義字段 (ACF) 插件的自定義權(quán)限。它集成的其他一些插件包括Easy Digital Downloads、GiveWP、Meta Box和WooCommerce。

以會(huì)員為中心的會(huì)員附加組件(付款、訂閱、電子郵件營(yíng)銷和高級(jí)內(nèi)容保護(hù))僅在其高級(jí)版本上可用。

WPFront User Role Editor

“WPFront User Role Editor”插件

“WPFront User Role Editor”插件

WPFront User Role Editor可幫助您在WordPress站點(diǎn)中創(chuàng)建、編輯或刪除用戶角色和權(quán)限。它的功能集類似于之前討論的插件,但它有兩個(gè)突出的功能。

用戶遷移

管理儀表板中的屏幕并將屬于特定用戶角色的所有用戶遷移到另一個(gè)。您甚至可以為您的用戶分配次要角色。

如果您必須將站點(diǎn)上的大量用戶從一個(gè)角色遷移到另一個(gè)角色,此功能將非常方便。

WPFront User Role Editor中的“登錄重定向”設(shè)置屏幕

WPFront User Role Editor中的“登錄重定向”設(shè)置屏幕

WPFront User Role Editor的另一個(gè)有用功能是基于角色的登錄重定向。例如,您可以在具有編輯角色的用戶登錄后將其重定向到文章頁(yè)面。您還可以選擇阻止他們?cè)L問(wèn)/wp-admin頁(yè)面并查看前端的工具欄。

Advanced Access Manager

“Advanced Access Manager”插件

“Advanced Access Manager”插件

Advanced Access Manager (AAM) 是一個(gè)功能強(qiáng)大的WordPress插件,可讓您控制網(wǎng)站的幾乎所有方面。它包括200多個(gè)不同的功能,專為了解角色和權(quán)限如何工作的高級(jí)WordPress用戶而設(shè)計(jì)。

與上面列出的插件相比,AAM的功能要多得多。但由于這是一個(gè)以開發(fā)人員為中心的插件,因此對(duì)于初學(xué)者或中級(jí)用戶來(lái)說(shuō)并不容易使用。

Advanced Access Manager中的主儀表盤

Advanced Access Manager中的主儀表盤

您可以將AAM的主儀表盤分成四個(gè)不同的區(qū)域。我在上圖中對(duì)它們進(jìn)行了編號(hào),并在下面進(jìn)行了概述。

  1. 最上面的區(qū)域提到了當(dāng)前正在考慮的“主題”。在這里,它是Role: Administrator,但它可以是特定用戶、匿名訪問(wèn)者或每個(gè)人的默認(rèn)設(shè)置。
  2. 主題下方的區(qū)域是主面板,您可以在其中進(jìn)行所有設(shè)置,以管理對(duì)該主題的站點(diǎn)上各種事物的訪問(wèn)。
  3. 第三個(gè)區(qū)域是Users/Roles Manager。使用其選項(xiàng)卡式圖標(biāo),您可以選擇要管理的內(nèi)容。它是用戶角色、特定用戶、匿名訪問(wèn)者還是每個(gè)人的默認(rèn)訪問(wèn)行為?
  4. 第四個(gè)區(qū)域可讓您管理AAM的設(shè)置、安裝其高級(jí)插件并聯(lián)系支持人員。

Advanced Access Manager中的“設(shè)置”面板

Advanced Access Manager中的“設(shè)置”面板

AAM根據(jù)其行為和使用情況將其設(shè)置分為5組。

  • 服務(wù)設(shè)置列出了您可以啟用或禁用的所有AAM模塊。通過(guò)有選擇地加載模塊,您可以優(yōu)化您的網(wǎng)站。
  • 核心設(shè)置區(qū)域允許您啟用或禁用某些AAM和WordPress的核心功能。
  • 內(nèi)容設(shè)置與網(wǎng)站內(nèi)容(例如文章、頁(yè)面、自定義文章類型)相關(guān)。
  • 安全設(shè)置部分包括AAM安全登錄功能的設(shè)置。截至目前,只有兩種設(shè)置可用:Brute Force LockoutOne Session Per User
  • ConfigPress是一項(xiàng)有趣的功能,可讓您使用基于INI的代碼更改AAM插件的配置。

Advanced Access Manager中的“附加組件”面板

Advanced Access Manager中的“附加組件”面板

AAM是一個(gè)面向開發(fā)人員的插件,不僅限于用戶角色和權(quán)限。它使您可以精細(xì)控制每個(gè)角色在您的網(wǎng)站上可以或不能做什么。

為您的網(wǎng)站安裝“訪問(wèn)策略”以確保其安全

為您的網(wǎng)站安裝“訪問(wèn)策略”以確保其安全

您可以使用AAM為您的網(wǎng)站設(shè)置訪問(wèn)和安全策略。它定義了哪個(gè)角色以及在什么條件下可以訪問(wèn)您網(wǎng)站上的各種資源。如果您想立即開始,您可以從AAM訪問(wèn)策略中心安裝準(zhǔn)備安裝的訪問(wèn)策略。

用于添加前端登錄表單的“AAM安全登錄”小工具

用于添加前端登錄表單的“AAM安全登錄”小工具

AAM允許您創(chuàng)建臨時(shí)用戶帳戶和角色。這是一種與外部資源共享帳戶的安全方式。臨時(shí)用戶帳戶將在您設(shè)置的日期和時(shí)間后過(guò)期。對(duì)于臨時(shí)角色,用戶將在指定期限后被剝奪該角色。

本文無(wú)法涵蓋AAM的所有功能。您可以參考Advanced Access Manager的文檔以了解有關(guān)其所有廣泛功能的更多信息。

提示: User Access Manager是高級(jí)訪問(wèn)管理器的一個(gè)不錯(cuò)的替代品,盡管它的功能較少且不經(jīng)常更新。

User Switching

WordPress插件-“User Switching”

WordPress插件-“User Switching”

User Switching允許您只需單擊一下即可在不同的WordPress用戶帳戶之間進(jìn)行切換。如果您正在測(cè)試大量用戶角色和權(quán)限,使用此插件將幫助您節(jié)省大量時(shí)間。用戶切換使用WordPress的內(nèi)置cookie身份驗(yàn)證系統(tǒng)來(lái)記住您切換的帳戶,以便您可以立即切換回它們。

安裝并激活插件后,訪問(wèn)儀表盤中的Users菜單。您將看到每個(gè)用戶的Switch To鏈接。單擊此按鈕將切換到您想要的用戶。

單擊“Switch To”鏈接以切換到您想要的用戶

單擊“Switch To”鏈接以切換到您想要的用戶

您可以通過(guò)單擊儀表盤或用戶配置文件屏幕中的Switch back to鏈接來(lái)切換回原始帳戶。

WordPress用戶切換

您還可以暫時(shí)Switch Off您的管理員帳戶,以查看您的前端對(duì)訪問(wèn)者的顯示方式。

只需單擊一下即可打開和關(guān)閉您的帳戶

只需單擊一下即可打開和關(guān)閉您的帳戶

作為一項(xiàng)安全措施,只有具有編輯用戶能力的用戶才能切換用戶帳戶。默認(rèn)情況下,只有管理員在WordPress單站點(diǎn)安裝中具有此權(quán)限,而在多站點(diǎn)網(wǎng)絡(luò)中,只有超級(jí)管理員具有此權(quán)限。

為了進(jìn)一步簡(jiǎn)化用戶切換,您可以安裝Admin Bar User Switching擴(kuò)展以使Switch to user鏈接出現(xiàn)在您的管理欄中。

將“Switch to user”鏈接添加到您的管理欄

將“Switch to user”鏈接添加到您的管理欄

View Admin As

WordPress插件-“View Admin As”

WordPress插件-“View Admin As”

View Admin As是一個(gè)高級(jí)用戶切換插件,還包括角色和權(quán)限管理器。與User Switching插件不同,您無(wú)需安裝擴(kuò)展程序即可將用戶切換菜單添加到管理欄。默認(rèn)情況下,View Admin As會(huì)將其所有主菜單項(xiàng)添加到管理欄。

管理欄中的“View As”菜單

管理欄中的“View As”菜單

即使不存在具有這些角色的用戶,您也可以在現(xiàn)有用戶或角色之間切換(通過(guò)承擔(dān)他們的能力)。單擊Site visitor鏈接將帶您到站點(diǎn)的前端,在那里您可以作為普通用戶測(cè)試站點(diǎn)功能,而無(wú)需離開瀏覽器的選項(xiàng)卡。

View Admin As允許您臨時(shí)更改自己的權(quán)限。由于它是以非破壞性方式完成的,因此您不會(huì)失去對(duì)主要功能的訪問(wèn)權(quán)限。

為當(dāng)前用戶臨時(shí)自定義權(quán)限

為當(dāng)前用戶臨時(shí)自定義權(quán)限

切換到用戶帳戶后,您可以直接從菜單編輯他們的屏幕首選項(xiàng)和設(shè)置。您還可以分別在前端和后端切換語(yǔ)言/區(qū)域設(shè)置。

您不限于一種視圖類型,因?yàn)槟梢越M合各種選項(xiàng)并同時(shí)應(yīng)用它們。

View Admin As附帶兩個(gè)可選模塊,您可以根據(jù)需要啟用它們。

查看管理員身份設(shè)置和可選模塊

查看管理員身份設(shè)置和可選模塊

第一個(gè)模塊添加了Role Defaults功能,可讓您為所有角色設(shè)置默認(rèn)屏幕設(shè)置。您可以將這些默認(rèn)設(shè)置應(yīng)用于角色、單個(gè)用戶或未來(lái)的新用戶。

第二個(gè)模塊啟用Role Manager功能。您使用此模塊對(duì)角色和權(quán)限所做的任何更改都是永久性的。與其他角色編輯器插件不同,此模塊將允許您通過(guò)自動(dòng)將分配給用戶的角色遷移到另一個(gè)角色來(lái)刪除分配給用戶的角色。

您可以參考View Admin As文檔以了解有關(guān)其廣泛功能的更多信息。

小結(jié)

WordPress角色和權(quán)限是用戶訪問(wèn)管理背后的基本概念。它們可以幫助您控制您網(wǎng)站上的所有用戶可以執(zhí)行的操作。許多插件和主題也使用它們向WordPress核心添加非常有用的功能。

WordPress有自己的一組角色和權(quán)限,但如果您需要更大的靈活性,您可以自定義它們或創(chuàng)建自己的角色和權(quán)限。您可以使用自己的代碼或使用第三方插件來(lái)執(zhí)行此操作。

了解什么是角色和權(quán)限,并學(xué)習(xí)如何管理它們,是掌握WordPress的關(guān)鍵步驟。今天就開始使用它們吧!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號(hào):國(guó)作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來(lái)源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請(qǐng)注明來(lái)源,商業(yè)媒體及紙媒請(qǐng)先聯(lián)系:aishangyiwan@126.com

工信部備案號(hào):湘ICP備19012813號(hào)-5