登入

wordpress的角色和權限控制的實現

作者:neo yang 時間:2021/11/09 讀: 7398
一、wordpress系統角色和權限的配置這個配置儲存在wp_options表的中。透過以下方式可以獲得[…]

一、wordpress系統角色和權限的配置

這個配置儲存在wp_options表的中。

透過以下方式可以獲得:

$roles= new WP_Roles();

或者

get_option(wp_user_roles);

二、role和cap

role是角色,cap是能力。

一個角色有多項能力。當一個使用者成為這個角色,便會將角色和對應的能力的配置寫到這個使用者的meta資料中(wp_usermetas表)。

User物件中會有相關資料。

用$user->roles可以取到相關角色資料。

用$user->allcaps可以取到相關能力。

三、三個函數

set_role()

設定使用者的角色,會刪除使用者之前所有的角色,設定新的角色。

remove_role()

兩種用法:

remove_role(role1):表示從系統角色配置(wp_option)中刪除role1。

$user->remove_role(role1):表示從使用者所有角色中刪除role1。

add_role()

也是兩種用法。

add_role(role1):表示在系統角色配置(wp_option)中增加role1。

$user->add_role(role1):表示從給使用者增加角色role1,但不會影響使用者已有角色。

四、判斷權限

透過判斷使用者角色實現


透過判斷能力實現

五、插件角色系統的最佳實踐

可以參考bbpress。

wordpress既有的角色作為一個「角色系列」。

插件自己的角色作為另一個“角色系列”。

每一個角色系列,一個使用者只能有一個。

外掛程式的角色系統的實作(儲存、設定、權限判斷)和wordpress一樣。

標籤:


copyright © www.lyustu.com all rights reserve.
Theme: TheMoon V3.0. Author:neo yang