上一篇教程中講解了再自定義文章類型中 capability_type 和 capabilities 參數的用法,前面只是稍微淺顯的説明瞭一下 WordPress 的角色、權限、用户級別。現在單獨用一篇文章來詳細説明。 (文章參考了 http://justintadlock.com/archives/2009/08/30/users-roles-and-capabilities-in-WordPress 的內容)
用户
用户就是在你網站註冊的人,他在你的網站有一個賬户,用户並不是訪問你網站的訪客,就算他在網站上留下了內容 (比如發表評論) 。
用户是通過角色-roles 來定義的,角色決定用户在網站中的位置,比如一些論壇,普通用户只能在前台發表帖子,而版主,可以進入版塊管理頁面。
角色-roles
在 WordPress 後台設置中我們可以很直觀的看到,WordPress 的用户角色有
- Administrator 管理員
- Editor 編輯
- Author 作者
- Contributor 貢獻者
- Subscriber 訂閲者
僅僅看到這個,我們還搞不明白角色的具體意義,下面我們具體看看角色到底是什麼。
講接下來的內容前,我們需要注意的有兩點:
- 角色是沒有分層級的
- 如果角色離開了權限,是沒有意義的
很多人看到這,都會反駁第一個觀點,你可能要説 「管理員-administrator 是最高層級的角色,它的層級就比訂閲者-subscriber 要高」 。不過這是不完全正確的,沒有弄清楚角色-roles 是怎樣工作的。默認的 administrator 具有更多權限,如果你願意,你可以給訂閲者 subscriber 更多的權限,要超過 administrator 哦。
所以,角色-roles 是沒有級別之分的。前面的教程中説法是不嚴謹的,但是也有更容易理解的效果。
權限-capabilities
權限是關於系統是怎樣工作的,權限也可以説是許可,也就是許可 roles 能幹什麼,不能幹什麼。
管理員具有默認的所有權限,比如:
edit_themes. 你能編輯主題,不是因為你是管理員,而是因為你的 role(administrator 具有 edit_themes 的權限) 。如果你把角色 administrator 的 edit_themes 去掉,就算你是管理員,你也不能編輯主題。
總結
- 用户是在你的網站註冊的人
- 每個用户都有一個角色
- 每個角色都被賦予了一些權限