技術文件目前產品線:WordPress 入門

WordPress 角色與權限(Roles and Capabilities)完整說明

更新日期
閱讀時間
約 5 分鐘
來源狀態
generated-draft

本篇說明

WordPress 透過「角色」(Roles)機制,讓站長控管使用者能做哪些事,例如發文、管理外掛、管理其他使用者等。每個角色都對應一組「權限」(Capabilities),本文整理六種預設角色的差異、各自擁有的權限,以及單站與多站台(Multisite)安裝時管理員權限的不同之處。

適合誰使用

需要設定使用者角色與權限、管理多人協作網站的 WordPress 站長或管理員

開始前準備

  • 需具備 Administrator(管理員)帳號權限才能管理其他使用者的角色
  • 安裝 WordPress 後會自動建立一組 Administrator 帳號

教學內容

角色與權限的基本概念

角色(Roles)讓站長能控管使用者在網站內能做什麼、不能做什麼

每個角色可執行的一組任務稱為權限(Capabilities),例如 publish_posts、moderate_comments、edit_users

開發者可用 add_cap() 與 remove_cap() 函式為角色增減權限,也能用 add_role() 與 remove_role() 新增或移除角色

六種預設角色

Super Admin 可存取整個站台網路(Network)管理功能及所有其他功能

Administrator(slug: administrator)可存取單一網站內的所有管理功能

Editor(slug: editor)可發布並管理所有使用者的文章;Author(slug: author)僅能發布並管理自己的文章

  1. Contributor(slug: contributor)可撰寫並管理自己的文章,但無法自行發布
  2. Subscriber(slug: subscriber)僅能管理自己的個人資料
  3. 若要變更新使用者的預設角色,可至後台『Settings』>『General』設定

Administrator 的權限:單站與 Multisite 的差異

單站安裝時,Administrator 實際上等同 Super Admin,並擁有額外的管理權限

僅單站安裝的 Administrator 才擁有 update_core、update_plugins、install_plugins、edit_users、delete_users、unfiltered_html 等權限

在 Multisite 環境中,這些額外權限只有 Super Admin 才擁有

常見權限說明

manage_options 權限可存取『Settings』下的 General、Writing、Reading、Discussion、Permalinks 等設定頁面

unfiltered_html 權限允許使用者在文章、頁面、留言與小工具中貼上 HTML 或 JavaScript 程式碼,對不受信任的使用者開放此權限可能導致惡意程式碼被貼上

unfiltered_upload 權限預設不開放給任何角色,需在設定檔中定義 ALLOW_UNFILTERED_UPLOADS 常數才能啟用

介面名稱對照

  • Roles:角色,決定使用者在網站中可執行哪些任務的分類
  • Capabilities:權限,指角色被允許執行的具體任務,如發文、管理外掛等
  • Super Admin:可存取整個 Multisite 網路管理功能及所有其他功能的最高角色
  • Administrator:可存取單一網站所有管理功能的角色,slug 為 administrator
  • Editor:可發布並管理所有使用者文章的角色,slug 為 editor
  • Author:僅能發布並管理自己文章的角色,slug 為 author
  • Contributor:可撰寫管理自己文章但無法發布的角色,slug 為 contributor
  • Subscriber:僅能管理個人資料的角色,slug 為 subscriber
  • manage_options:可存取 Settings 底下多項設定頁面的權限
  • unfiltered_html:允許使用者在內容中貼上未過濾的 HTML/JavaScript 程式碼的權限

注意事項

注意

不應將某個角色視為比另一角色「更高階」,而應理解為各角色在網站中負責不同任務

注意

開放 unfiltered_html 權限給不受信任的使用者,可能導致他們貼上惡意或格式不良的程式碼

注意

在 Multisite 安裝中,只有 Super Admin 擁有 unfiltered_html 權限

常見問題

Administrator 和 Super Admin 有什麼不同?

在單站安裝中,Administrator 實際上等同 Super Admin。但在 Multisite(多站台)環境下,只有 Super Admin 能存取 create_sites、manage_network 等網路層級的權限,一般 Administrator 則沒有這些權限。

Contributor 和 Author 的差別在哪?

Contributor 可以撰寫並管理自己的文章,但無法自行發布,需交由具備發布權限的角色處理;Author 則可以發布並管理自己的文章。

為什麼不建議開放 unfiltered_html 給一般使用者?

因為開放此權限後,使用者可在文章、頁面、留言與小工具中貼上 HTML 甚至 JavaScript 程式碼,若使用者不受信任,可能貼上惡意或格式不良的程式碼。

官方來源

還是卡住了?

先把問題問清楚,通常比直接開工單更快。複製下面的結構,補上你的情況後送出。

用 AI 先釐清問題

/ai 我正在閱讀「WordPress 角色與權限(Roles and Capabilities)完整說明」,目前卡在:

我已嘗試:

我看到的畫面/錯誤訊息:

請用一步一步的方式告訴我下一步。

需要我們實際進入網站調整設定、修改佈景主題或處理資料時,再建立 /task 工單。