[英]Wordpress role capabilities issue
我需要一些有關 CPT 能力的幫助。 我注冊了一個能力類型為“議程”的新 CPT。 為此,我在寄存器數組中使用下面的代碼
'capability_type' => 'agenda'
之后我添加了兩個新角色
add_role('owner', 'Eigenaar',
array(
'read' => true,
'publish_agendas' => true,
'edit_agenda' => true,
'edit_agendas' => true,
'delete_agenda' => true,
'delete_others_agendas' => true,
'delete_others_agenda' => true
)
);
add_role('employee', 'Personeel',
array(
'read' => true,
'publish_agendas' => true,
'edit_agenda' => true,
'edit_agendas' => true,
'delete_agenda' => true
)
);
我有什么問題
員工還可以刪除和編輯所有者的議程,這不是本意。
必須只允許員工編輯和刪除自己的議程帖子。 所有者擁有更多權限,可以編輯和刪除員工的議程帖子。
誰能在正確的方向上幫助我?
我解決了這個問題!
如果您使用 function register_post_type
創建一個新的 CPT
你必須在數組中添加這一行 arguments
'map_meta_cap' => true,
現在您可以將功能設置為如下角色
add_role('owner', 'Eigenaar',
array(
'read' => true,
'publish_agendas' => true,
'edit_agenda' => true,
'edit_agendas' => true,
'delete_agenda' => true,
'delete_others_agendas' => true,
'delete_others_agenda' => true
)
);
add_role('employee', 'Personeel',
array(
'read' => true,
'publish_agendas' => true,
'edit_agenda' => true,
'edit_agendas' => true,
'delete_agenda' => true,
'delete_others_agendas' => false,
'delete_others_agenda' => false
)
);
您可以嘗試在您的員工用戶角色功能中明確拒絕該功能。
'delete_others_agendas' => false,
'delete_others_agenda' => false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.