创建仅限于特定CPT的用户角色

时间:2016-06-10 作者:Ollie

我正在尝试创建一个只能创建并提交给CPT的角色。当我从角色中删除edit\\u post时,它也会取消创建和编辑任何分配和注册的CPT的功能。我已经注册并为该角色分配了edit\\u CPTs功能。所以基本上,我有:

edit_cpt
edit_cpts
我已经带走了

edit_posts
但一旦我移除edit_posts 该角色甚至无法在仪表板界面中看到CPT。任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:Morgan Estes 整理而成

您需要使用自定义功能注册CPT,然后将该特定cap分配给用户。

将参数传递给register_post_type, 设置capability_type 你的新能力,所以检查变成\'edit_cpts\' 而不是\'edit_post\'.

按设置\'capability_type\' => [ \'cpt\', \'cpts\' ], \'“cpt”将映射到“post”以进行标准功能检查,因此在通常检查“edit\\u post”的地方,现在将检查“edit\\u cpt”。

完全删除基本体时\'edit_posts\' 来自用户/角色的cap正如您所做的那样,您需要使用WP_Role::add_cap() 并用current_user_can( \'edit_cpts\' ).

相关推荐

未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0

嘿,我在我的localhost设置中得到了这个错误消息,但只有在启用Genesis框架的情况下;WordPress二十一行。当我想创建一个新帖子时,就会发生这种情况。如果我刷新页面,错误会重复,但帖子本身会被创建,一切似乎都很好。有人知道这是什么原因吗?Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067 Notice: Undefined offset: 0