繁体   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