wordpress的角色和權限控制的實現
一、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一樣。