问题描述
好的,我正在寻找最好的方式来攻击这个。
我非常喜欢 PHP,并在 WordPress 中自定义后缀类型与自定义元字段。
这是我在做什么:
-
用户注册,默认设置在用户端。
-
管理员的用户请求具有自定义帖子类型的权限。
-
管理员将用户分配给另一个权限名称,如”Shop Owner” 。
-
用户现在可以看到自定义帖子类型,并可以输入此帖子类型。
-
用户只能查看和编辑自己的帖子。
我需要以下帮助:
-
如何创建一个名为”Shop Owner” 的新型”Role”,
-
如何给予所述角色的正确权限,只能查看并访问自定义帖子类型。
-
只允许用户查看和编辑自己的帖子到此自定义帖子类型。
理想情况下,我更喜欢这一切都是从 wp-admin 完成的,但我猜测我可能需要为此建立一个前端,以获得有限的控制权。
任何输入都非常感激。
亲切的问候
最佳解决方案
使用 Justin Tadlock 的插件 「Members」 。它使您能够创建新角色并编辑现有角色,以及添加自定义功能。所有你需要做的工作,可以点击几下。
我知道你在你对 ZaMoose 的回答中所说的话是在你自己写这个功能,所以我完全可以控制一切。这就是缺少开源软件的全部内容。 Justin Tadlock 发布了他的插件,所以你可以精确地使用它,所以你可以完全控制一切。
如果你真的想要重塑轮胎,可能会浪费你自己的时间几百小时,我无法阻止你,但你至少可以节省自己的麻烦,并使用 Tadlock 的插件来学习如何做你想要的。
一旦你有一个你想要的插件,你需要更改'map_meta_cap'
标志到 true
和'capability_type'
标志在你的帖子类型的注册功能,以便它说的东西不是’post’,’page’ 或任何其他’reserved’ 类型。然后,使用您的能力类型而不是帖子复制与帖子相关的所有功能 (例如 edit_posts
,edit_others_posts
,publish_posts
等) 。确保将所有这些权限分配给管理员 (在执行此操作之前,您将无法看到帖子类型),然后创建角色,模仿’contributor’ 角色的职位类型。
例如,说你的能力类型是 foobars
,你想要给’shop owners’ edit_foobars
,delete_foobars
和 read
功能。这样他们可以创建自己的草稿,并删除这些草稿,但是由于它们没有 publish_foobars
功能,所以他们必须提交它们以供批准。因为它们没有 edit_published_foobars
,所以对批准的 foobar 的所有修改都必须被批准。
次佳解决方案
注册表的类型有一个名为”capabilities” 的参数,所以你可以有例如
'capability' => __('organize_shop'),
http://codex.wordpress.org/Function_Reference/register_post_type
要创建新的用户/角色/功能,您可以使用 add_role(add_cap) 作为一个简单的例子来开始使用:
add_role( 'shop_owner', 'Shop Owner', array( 'edit_posts' => true, ) );
$wp_roles->add_cap( 'Shop Owner', 'organize_shop' );
$role->add_cap( 'organize_shop' );
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。