簡體   English   中英

Wordpress 角色能力問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM