[WordPress] 後台整理術:管理頁面修改權限

通常頁面會比較多客製化的操作,還包含系統程式面的部分,全頁面是動態產生內容的做法,這時候頁面可能會做一些系統設置,不適合開放讓編輯修改。

只有一位編輯者的話可以透過角色作者權限來限制,但多位編輯帳號要協作就不能。此時可以透過下方程式碼片段來控制某些頁面不開放修改。

// 根據角色來管理頁面編輯者權限
function mxp_lock_admin_page_edit() {
    $screen = get_current_screen();
    $user   = wp_get_current_user();
    // 指定排除的使用者角色
    $roles       = array('role_slug_d', 'role_slug_e');
    $limit_posts = array(
        12/* 某一頁編號 */,
        29/* 某二頁編號 */,
        11/* 某三頁編號 */,
        17/* 某四頁編號 */,
    );
    foreach ($roles as $key => $role) {
        if (in_array($role, (array) $user->roles)) {
            // 滿足正在編輯頁面的條件(其他條件就是要自己去搭配 current_screen 瀏覽畫面方法)
            if (is_admin() && ($screen->base == 'post' && $screen->post_type == 'page')) {
                $id = $_GET['post'];
                foreach ($limit_posts as $key => $post_id) {
                    if ($id == $post_id) {
                        wp_die("<script>alert('抱歉,此頁面不開放編輯。');window.history.back();</script>");
                    }
                }
            }
        }
    }
}
add_action('current_screen', 'mxp_lock_admin_page_edit');

程式中可以控制哪些需要排除的角色,以及對應的頁面。如果還要更複雜的分配就是需要再改邏輯來處理,大多一個案子的應對不會一直變,所以需求可以透過這方法來解決!

這部分也有對應的外掛可以處理: User Role Editor

免費版可以處理到角色很細部的管理,而進階付費版(Pro)也可以做到指定使用者能修改的頁面等內容,看起來功能也滿豐富的~

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *