要成為WordPress網(wǎng)站的合格管理員,您必須了解一些有關(guān)用戶角色和能力的知識(shí):用戶是什么,如何創(chuàng)建新用戶以及要為用戶做什么。涵蓋這些內(nèi)容有很多價(jià)值,但是我們今天的目標(biāo)是真正了解整個(gè)WordPress用戶管理和角色系統(tǒng)在概念上是如何工作的,并涵蓋幾種最重要的修改方法。

WordPress用戶介紹
每個(gè)可以登錄WordPress網(wǎng)站的帳戶都代表一個(gè)“用戶”,每個(gè)WordPress用戶都有一個(gè)“角色”。
每個(gè)可以登錄WordPress網(wǎng)站的帳戶都代表一個(gè)“用戶”。也就是說(shuō),每個(gè)“登錄”(一個(gè)用戶名和密碼對(duì))都是WordPress中的一個(gè)憑據(jù)單位。這些用戶帳戶是帖子、頁(yè)面、媒體等的作者。作為WordPress網(wǎng)站的管理員,您可以通過(guò)管理側(cè)邊欄中的“用戶>添加用戶”隨意創(chuàng)建新用戶。通常,您應(yīng)該為要登錄到站點(diǎn)的每個(gè)人創(chuàng)建一個(gè)新用戶。

您可能還已經(jīng)意識(shí)到有關(guān)WordPress授權(quán)系統(tǒng)的其他事項(xiàng):每個(gè)WordPress用戶都有一個(gè)“角色”。您必須在創(chuàng)建新帳戶的頁(yè)面上選擇它。
WordPress默認(rèn)用戶角色
WordPress開箱即用,具有以下角色:
- 超級(jí)管理員:這是一個(gè)僅限多站點(diǎn)網(wǎng)絡(luò)的角色。顧名思義,它是管理員的更強(qiáng)大版本。超級(jí)管理員不僅可以以管理員身份更改和控制單個(gè)WordPress網(wǎng)站,還可以更改誰(shuí)可以訪問網(wǎng)絡(luò)中的特定網(wǎng)站。
- 管理員:這是您可能用來(lái)登錄自己的WordPress網(wǎng)站的角色。這就是WordPress默認(rèn)情況下使網(wǎng)站上的第一個(gè)用戶使用的功能,并且是單個(gè)WP站點(diǎn)功能最強(qiáng)大的角色。如果“管理員”無(wú)法在WordPress網(wǎng)站上開箱即用,則任何人都無(wú)法做到。安裝插件、更改主題、創(chuàng)建用戶、發(fā)布帖子等,這些都由管理員控制。
- 編輯:這是下一個(gè)最強(qiáng)大的角色。您可以執(zhí)行所有您可以想象的必要的后期和媒體創(chuàng)作以及編輯工作,但是不能新建用戶、添加新插件或進(jìn)行任何更改網(wǎng)站功能的操作。
- 作者:從編輯又走了一步,作者角色只能更改自己的文章和媒體。他們無(wú)法更改網(wǎng)站上其他用戶的內(nèi)容。
- 貢獻(xiàn)者:貢獻(xiàn)者可以編輯自己的文章,刪除自己發(fā)表的未發(fā)布文章以及閱讀網(wǎng)站。他們甚至無(wú)法發(fā)布自己的文章。
- 訂閱者:訂閱者角色僅用于以下目的:一個(gè)您想在WordPress網(wǎng)站上擁有帳戶的人,但您不想做任何事情,只能像沒有帳戶的人一樣閱讀您的網(wǎng)站。這個(gè)角色是您最經(jīng)常看到的WordPress會(huì)員站點(diǎn)的“成員”,因?yàn)槌藭?huì)員插件作者提供的這些用途之外,它不提供其他站點(diǎn)權(quán)限。
WordPress用戶的安全隱患
為了安全起見,您希望為個(gè)人提供盡可能少的訪問權(quán)限,使他們能夠執(zhí)行自己需要的操作。
盡管今天不是我們關(guān)注的重點(diǎn),但值得一提的是在每個(gè)地方都遵循安全性的一般原則:您希望為個(gè)人提供盡可能少的訪問權(quán)限,使他們能夠執(zhí)行自己需要的操作。
您最常在WordPress網(wǎng)站上使用的用戶通常不應(yīng)該是管理員。
“管理員”角色是(單個(gè)非網(wǎng)絡(luò))WordPress網(wǎng)站所具有的最強(qiáng)大的功能;向只需要發(fā)布和編輯文章及其他媒體的用戶提供這么多的權(quán)限,這就是不必要的安全性錯(cuò)誤。
對(duì)于正常的WordPress發(fā)布任務(wù),“編輯”角色綽綽有余;實(shí)際上,如果您是該網(wǎng)站上的唯一作者,則“作者”角色可能會(huì)為您效勞。無(wú)論哪種方式,只有在您需要執(zhí)行其他角色無(wú)法做的事情時(shí),您才應(yīng)該登錄一個(gè)管理員用戶(也必須具有該身份):創(chuàng)建新用戶、安裝或卸載插件、更改主題等。破壞您最常用的WordPress帳戶(例如您無(wú)意中將其保留在咖啡館中登錄)不會(huì)讓某人對(duì)您的網(wǎng)站造成嚴(yán)重破壞。
您不應(yīng)該讓舊帳戶擁有比今天更多的訪問權(quán)限。
同樣,您不應(yīng)該不加考慮就給任何類型的人員帳戶。而且,您不應(yīng)該讓舊帳戶擁有比今天更多的訪問權(quán)限。假設(shè)有人曾經(jīng)為您的網(wǎng)站寫過(guò)文章,但現(xiàn)在不再寫了:設(shè)置他們?yōu)橛嗛喺呓巧K麄兊膸羧匀淮嬖冢虼怂麄兊奶尤匀豢捎貌⑶覍傩赃m當(dāng),但是他們不會(huì)意外地做不應(yīng)在您網(wǎng)站上做的任何事情。
能力和角色如何交織
到目前為止,我們已經(jīng)確定WordPress網(wǎng)站上不同的用戶角色具有不同的能力。實(shí)際上,這是WordPress訪問控制系統(tǒng)的核心:用戶是分配了特定角色的用戶組的成員,并且該角色本身映射到站點(diǎn)上的各種能力。
為了更好地理解這一點(diǎn),可以看下下面的圖片。當(dāng)我們移走我先前列出的角色時(shí),您的角色將越來(lái)越少的WordPress中可用的特定功能。

這種具體的命名能力到用戶角色的映射是WordPress訪問控制系統(tǒng)最強(qiáng)大和有用的功能之一。當(dāng)您需要授權(quán)(或取消授權(quán))具有特定能力的用戶或一組用戶時(shí),只需更改用戶的角色即可輕松實(shí)現(xiàn)。
同樣,有時(shí)您需要所有用戶組才能具有新功能。也許您的編輯者正在充當(dāng)評(píng)論的主持人,并且您還希望他們能夠從您的網(wǎng)站中刪除用戶。然后,您可以編輯“作者”角色以賦予它這種能力-?只有這種能力被稱為remove_users。由于使用了“角色和能力”系統(tǒng),因此您可以這樣做,而不必?fù)?dān)心您的站點(diǎn)上有20位編輯者這一事實(shí)。
允許您更改角色能力的插件
一旦了解了WordPress用戶訪問系統(tǒng)的工作原理,就可以通過(guò)多種方式進(jìn)行更改,就像我剛才提到的那樣(為編輯者提供“刪除用戶”功能)。
第一種方法是使用這方面的插件。

User Role Editor 是最常用的,但是如果您喜歡其他人,可以隨時(shí)貨比三家。這些插件基本上都為您提供了一種方便、直觀的方式來(lái)編輯用戶將能夠在您的網(wǎng)站上進(jìn)行的操作。
它們還允許您創(chuàng)建全新的角色-也許您需要?jiǎng)?chuàng)建一些簡(jiǎn)單且唯一的 “評(píng)論主持人”類型的用戶。您只需創(chuàng)建該角色,并確保單擊幾下即可縮小所需的功能范圍。
這些插件非常適合大多數(shù)WordPress用戶,而這些用戶不需要花費(fèi)適度的性能開銷。實(shí)際上,對(duì)于大多數(shù)站點(diǎn)來(lái)說(shuō),像這樣的小插件的開銷并不是最大的瓶頸,因此,專門的插件來(lái)進(jìn)行所需更改的附加好處不值得讓PHP費(fèi)力。
但是,如果您是開發(fā)人員,或者性能下降確實(shí)實(shí)在難以承受,那么使用幾行PH??P即可輕松實(shí)現(xiàn)。
使用PHP更改WordPress用戶角色的能力
在PHP中,WordPress角色是您使用和修改的對(duì)象。您可以通過(guò)以下兩種方式之一訪問它:直接通過(guò)訪問全局變量$wp_roles—或通過(guò)函數(shù)get_role。我喜歡第二種,這有兩個(gè)原因:
- 我不喜歡全局變量。
- 我認(rèn)為該
get_role版本使代碼閱讀性更好。
在這兩種情況下,我們都將繼續(xù)以允許我們的“編輯”執(zhí)行以下操作為例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' );
}
在第一個(gè)示例中,獲取角色(“編輯”)將為您處理方法調(diào)用'editor'上的參數(shù)add_cap,我很喜歡這種方法。
這些方法可以直接在您的插件或主題的functions.php使用-更改存儲(chǔ)在數(shù)據(jù)庫(kù)中,因此可以隨時(shí)調(diào)用-或可以通過(guò)WordPress動(dòng)作掛鉤掛載到 init 。
這兩個(gè)
add_cap和remove_cap是對(duì)象的方法,而不是簡(jiǎn)單的函數(shù)調(diào)用。
值得非常清楚的是,add_cap和remove_cap(相反)都是對(duì)象方法,而不僅僅是您調(diào)用的函數(shù)。也就是說(shuō),您不能調(diào)用add_cap('editor', 'remove_user'):您必須首先使用get_role或訪問全局$wp_roles對(duì)象來(lái)獲取一個(gè) WP_Role 對(duì)象。
用代碼創(chuàng)建新的WordPress用戶角色
我們提到插件不僅可以更改現(xiàn)有角色的能力,還可以讓您創(chuàng)建新角色。要在自己的PHP中執(zhí)行此操作,請(qǐng)使用add_role函數(shù)。它包含三個(gè)參數(shù):
- 角色slug別名-比如?
'comment_moderator' - 角色的顯示名稱-?
'Comment Moderator'或__('Commment Moderator', 'plugin-slug')(符合多語(yǔ)言國(guó)際化) - 您希望該類型用戶擁有的一系列能力
總之,它看起來(lái)像這樣:
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
)
);
}
為了簡(jiǎn)潔起見,此角色僅獲得四種能力。評(píng)論版主可以主持評(píng)論,并可以對(duì)文章進(jìn)行較小的更改和更正(可能是回復(fù)評(píng)論)。他們可以更改自己的文章、其他人的文章以及已發(fā)布的文章。這就是這個(gè)角色所能做的,僅此而已。
再次,由于新角色存儲(chǔ)在數(shù)據(jù)庫(kù)中,并在需要時(shí)由WordPress從數(shù)據(jù)庫(kù)中重新加載,因此您可以(通常應(yīng)該)在插件或主題(不推薦在主題中創(chuàng)建用戶)被激活時(shí)創(chuàng)建。如果您將它們吸引到init動(dòng)作鉤子上,它不會(huì)破壞任何東西,但是性能稍差。
更改特定用戶的能力
可以忽略WordPress的角色系統(tǒng)并授予用戶特定的能力,但這很少是最好的解決方案。
到目前為止,我們已經(jīng)討論了使用由用戶角色授予和維護(hù)的WordPress用戶的能力。在幾乎所有情況下,我都建議您這樣做來(lái)更改,控制和修改訪問權(quán)限。與嘗試手動(dòng)控制站點(diǎn)上每個(gè)用戶的操作相比,它是一個(gè)功能更強(qiáng)大、更靈活的系統(tǒng)。
話雖這么說(shuō),有時(shí)候您可能只需要與需要更多或更少權(quán)限的特定用戶打交道,并且您知道您永遠(yuǎn)都不想在授權(quán)歷史上的任何其他時(shí)間類似地授權(quán)(或取消授權(quán))其他用戶。現(xiàn)場(chǎng)。如果不是這樣,請(qǐng)執(zhí)行幾個(gè)額外的步驟來(lái)創(chuàng)建角色,只有該用戶現(xiàn)在可以使用。
如果確實(shí)要更改特定用戶的能力,則可以僅對(duì)該用戶通過(guò)add_cap和remove_cap方法進(jìn)行更改。看起來(lái)像:
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' );
}
實(shí)質(zhì)上,這是在加載角色的常規(guī)能力之后,對(duì)特定用戶的特定替代。同樣,這是可能的,但很可能不是最佳解決方案。
總結(jié)
從本質(zhì)上講,WordPress用戶系統(tǒng)是我們處理WordPress網(wǎng)站功能的方式。通過(guò)為系統(tǒng)中的每個(gè)用戶分配一個(gè)命名角色,WordPress可以訪問一組明確定義的功能,這些功能確定該用戶可以在站點(diǎn)上執(zhí)行的操作。由于在用戶可以做什么和他們是誰(shuí)之間存在額外的一層(稱為角色),因此您獲得了很大的靈活性。這只是使WordPress出色的另一件事。
相關(guān)文章推薦:
- WordPress用戶角色編輯插件:User Role Editor【已漢化】
- WordPress根據(jù)用戶角色隱藏文章/頁(yè)面的功能模塊(Meta Boxes)
- WordPress根據(jù)用戶角色顯示/隱藏某些后臺(tái)功能
- WordPress 根據(jù)登錄與否或不同用戶角色顯示不同菜單項(xiàng)
- WordPress 根據(jù)用戶名/用戶角色/能力/是否登錄等隱藏部分文章內(nèi)容
- WordPress用戶角色與用戶能力/權(quán)限
- WordPress 修改用戶角色名稱和添加新用戶角色
- WordPress 根據(jù)用戶角色和登錄狀態(tài)顯示不同內(nèi)容和小工具
- 如何對(duì)WordPress特定用戶角色隱藏后臺(tái)管理通知





大佬您好,我想請(qǐng)教一個(gè)問題。
就是我現(xiàn)在為我的 wordpress 安裝了一個(gè) 名為 sucuri-scanner 的一個(gè)安全插件。
它默認(rèn)是能讓身為管理員的用戶看到它的菜單,但如果我想讓身為 editor (編輯者) 的用戶也能看到它的菜單,我要怎么去做