本篇文章更新時間:2019/09/18
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
通常頁面會比較多客製化的操作,還包含系統程式面的部分,全頁面是動態產生內容的做法,這時候頁面可能會做一些系統設置,不適合開放讓編輯修改。
只有一位編輯者的話可以透過角色作者權限來限制,但多位編輯帳號要協作就不能。此時可以透過下方程式碼片段來控制某些頁面不開放修改。
// 根據角色來管理頁面編輯者權限
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("");
}
}
}
}
}
}
add_action('current_screen', 'mxp_lock_admin_page_edit');
程式中可以控制哪些需要排除的角色,以及對應的頁面。如果還要更複雜的分配就是需要再改邏輯來處理,大多一個案子的應對不會一直變,所以需求可以透過這方法來解決!
這部分也有對應的外掛可以處理: User Role Editor
免費版可以處理到角色很細部的管理,而進階付費版(Pro)也可以做到指定使用者能修改的頁面等內容,看起來功能也滿豐富的~
發佈留言