使用Justin Tadlock的插件“ Members ”。它使您能够创建新角色和编辑现有角色,以及添加自定义功能。您只需单击几下即可完成所有要做的工作。
我知道您在对ZaMoose答案的评论中说过,您正在“自己编写功能,以便对所有内容都拥有完全控制权”。这就缺少了开源软件的全部要点。贾斯汀·塔德洛克(Justin Tadlock)发布了他的插件,以便您可以精确地使用它,以便对所有内容都拥有完全的控制权。
如果你真的真的要推倒重来,可能浪费数百自己的时间小时,我不能阻止你,但你至少可以保存自己的麻烦和使用Tadlock的插件,以了解如何做你想做的。
一旦您的插件完成了您想要的工作,就需要将'map_meta_cap'
标志更改为,true
并将其'capability_type'
标记为帖子类型注册函数,以使其显示除“ post”,“ page”或任何其他“ reserved”之外的内容类型。然后,复制所有相关的帖子(如功能edit_posts
,edit_others_posts
,publish_posts
等),使用你的能力类型,而不是职位。确保将所有这些权限分配给管理员(在执行此操作之前,您将无法看到帖子类型),然后创建您的角色,模仿您的帖子类型的“贡献者”角色的功能。
例如,假设你的能力类型是foobars
,你会想给“店主”的edit_foobars
,delete_foobars
和read
能力。这样,他们可以创建自己的草稿foobar,并删除这些草稿,但是由于它们没有publish_foobars
功能,因此必须将其提交以供批准。因为它们没有edit_published_foobars
,所以必须批准对批准的foobar的所有修改。
'map_meta_cap' => true
与'capability_type' => 'shopowner'
我的自定义后的类型。我创建了一个新角色,ShopOwner
并将其赋予了read,edit_shopowner,delete_shopowner功能。将用户设置为ShopOwner角色,然后使用该用户登录。该用户看不到自定义帖子类型。我错过了什么吗?