WordPress移除用戶角色添加新角色並賦予角色能力/權限
WordPress移除用戶角色添加新角色並賦予角色能力/權限,一看這個標題就知道是關於用戶的,也就是說用戶角色跟那些開放了用戶註冊登陸的站有關。WordPress提供的5類用戶角色與權限,除了管理員好使之外,其它角色很多時候都不好用。這時候我們就需要添加我們自己的用戶角色,比如普通用戶、VIP用戶等等。並且給它們賦予不同的權限,方便我們實現我們需要的業務邏輯。WordPress也知道自己的角色與權限不夠大家用,於是提供了相應的函數供我們DIY。
移除不需要的角色
WordPress自帶的訂閱者對我們幾乎沒有作用,因此可以考慮移除它,你也可以不移除。
remove_role ( $data )
參數是角色名字,WordPress的角色名如下:
- 訂閱者:subscriber
- 投稿者:contributor
- 作者:author
- 編輯:editor
- 管理員:administrator
比如移除訂閱者:
remove_role ( 'subscriber' ); //移除訂閱者
將代碼放在主題的functions.php中即可。
添加新角色
//添加普通用戶角色 add_role ( 'pt_user' , '普通用戶' , array ( 'read' => false , //讀權限 'edit_posts' => false , //編輯權限 'delete_posts' => false , //刪除權限 ));
這樣就可以添加一個名為普通用戶的角色,為了與上面WordPress自帶的角色名形成對比,特意寫成下面的形式:
- 普通用戶:pt_user
同樣將代碼放在主題的functions.php中即可。
比如不讓普通用戶擁有查看部分內容,就不給普通用戶賦予讀權限,在使用時,只需判斷用戶是否具有讀權限即可,如下:
if ( is_user_logged_in () && current_user_can ( 'read' ) ) { //有權限 } else { //沒有權限 }
修改添加角色後,我們在後台可以看到目前擁有的角色,如下:
WordPress移除用戶角色添加新角色並賦予角色能力/權限
另外,在移除了訂閱者後,新用戶註冊將默認無身份,我們可以在給用戶註冊時指定用戶角色來賦予新用戶默認角色。具體請查看用戶註冊函數WordPress函數wp_insert_user註冊新用戶中的參數介紹。
修改用戶角色
$user = new WP_User ( $ID ); $user -> set_role ( 'pt_user' );
直接設置角色,將覆蓋已擁有角色,WordPress允許擁有多個角色!