使用Justin Tadlock的插件“Members。它使您能够创建新角色和编辑现有角色,以及添加自定义功能。只需单击几下即可完成所有需要完成的工作。
我知道你在评论ZaMoose的回答时说,你“希望自己编写功能,这样我就可以完全控制一切。”这没有抓住开源软件的全部要点。贾斯汀·塔洛克(JustinTadlock)发布了他的插件,所以你可以准确地使用它,这样你就可以完全控制一切。
如果你真的really 我不能阻止你,但你至少可以省去麻烦,使用Tadlock的插件来学习如何做你想做的事。
一旦你有了一个可以满足你需要的插件,你就需要更改\'map_meta_cap\'
标记为true
还有\'capability_type\'
在post类型注册函数中标记,以便它显示除“post”、“page”或任何其他“reserved”类型之外的内容。然后,复制与帖子相关的所有功能(例如。edit_posts
, edit_others_posts
, publish_posts
, 等等),使用你的能力类型而不是帖子。确保将所有这些权限分配给管理员(在执行此操作之前,您将无法查看帖子类型),然后创建您的角色,模仿“参与者”角色对您的帖子类型的能力。
例如,假设您的能力类型为foobars
, 你会想给“店主”edit_foobars
, delete_foobars
, 和read
能力。这样他们就可以创建自己的草稿Foobar,并删除这些草稿,但因为他们没有publish_foobars
能力,他们必须提交批准。因为他们没有edit_published_foobars
, 对批准的foobar的所有修改都必须获得批准。