這個功能可以使用外掛方式來完成,但有時只不過需要創建一兩個欄位與一兩個角色,卻需要安裝一個用不到時10%的外掛,這是否必要,看需求摟🤪,這篇繼續自訂滿滿。

在管理 WP 使用者帳號時,尤其是在公司是用,無法很明確知道這個使用者帳號到底是否離職,而離職的帳號,是沒有一個很明確離職的角色可以使用,頂多也只是使用訂閱角色來代替,有些訂閱角色並沒有離職,這段親身經歷有點煩😵,來自訂一個離職角色與權限。

自製外掛起手式

*一句老話,程式碼要放在佈景主題的 function 裡,還是要放在外掛裡,來使用這功能都可,外掛起手式這裡不再詳述,去看WordPress custom post type 如何自訂文章類型這篇😃

在本機建立伺服器環境

*要在本機建立 PHP、阿帕契網站環境可以看這篇如何使用 Python 爬取原價屋價目列表😜,別辛苦在遠端測試所寫的程式。

自訂一個離職角色與權限

添加自訂角色 hook 來增加一個離職角色,將權限設定只能閱讀,就跟訂閱者角色一樣,下面程式碼有咧出一些權限設定值可參考,在使用者帳號角色就可以”離職”這個選項。

PHP
function custom_add_role() {
    // 角色的名稱,這裡我們創建一個名為 "custom_role" 的自訂角色
    $role = 'resign';
    // 角色的顯示名稱
    $display_name = '離職';
    // 角色的能力(權限),這是一個範例
    $capabilities = array(
        'read' => true,  // 允許閱讀文章
        // 'edit_posts' => true, // 允許編輯文章
        // 'upload_files' => true, // 允許上傳檔案
		// 'read' => true, //允許使用者閱讀文章。
		// 'edit_posts' => true, //允許使用者編輯文章。
		// 'upload_files' => true, //允許使用者上傳檔案。
		// 'edit_published_posts' => true, //允許使用者編輯已發佈的文章。
		// 'delete_posts' => true, //允許使用者刪除文章。
		// 'publish_posts' => true, //允許使用者發佈文章。
		// 'edit_pages' => true, //允許使用者編輯頁面。
		// 'edit_published_pages' => true, //允許使用者編輯已發佈的頁面。
		// 'delete_pages' => true, //允許使用者刪除頁面。
		// 'publish_pages' => true, //允許使用者發佈頁面。
		// 'edit_theme_options' => true, //允許使用者編輯主題選項(通常是主題自訂設定)。
		// 'manage_options' => false, //允許使用者管理站點選項(通常是全站設定)。
    );
    // 使用 add_role 函數新增自訂角色
    add_role( $role, $display_name, $capabilities );
}
// 在 WordPress 初始化時執行 custom_add_role 函數
add_action( 'init', 'custom_add_role' );

禁止”離職”角色權限訪問後台

由於上面的權限設定無法限制角色可以訪問台,所以可以再添加一個 hook 來限制角色訪問後台,將角色導回首頁,程式碼如下:

PHP
function restrict_custom_role() {
    if ( current_user_can( 'resign' ) && is_admin() ) {
        wp_redirect( home_url() ); // 重定向到前台首页
        exit;
    }
}
add_action( 'admin_init', 'restrict_custom_role' );

只要使用者一登入,只要判斷是”離職”角色使用者就會跳回首頁,就是這麼簡單,這樣只要看使用者列表就可以知道誰離職了😎,這篇可以跟使用者資料自訂欄位配合,就看需求了,就這樣81~!

最後修改日期: 2024 年 4 月 5 日

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。