问题描述

好的,我正在寻找最好的方式来攻击这个。

我非常喜欢 PHP,并在 WordPress 中自定义后缀类型与自定义元字段。

这是我在做什么:

  1. 用户注册,默认设置在用户端。

  2. 管理员的用户请求具有自定义帖子类型的权限。

  3. 管理员将用户分配给另一个权限名称,如”Shop Owner” 。

  4. 用户现在可以看到自定义帖子类型,并可以输入此帖子类型。

  5. 用户只能查看和编辑自己的帖子。

我需要以下帮助:

  1. 如何创建一个名为”Shop Owner” 的新型”Role”,

  2. 如何给予所述角色的正确权限,只能查看并访问自定义帖子类型。

  3. 只允许用户查看和编辑自己的帖子到此自定义帖子类型。

理想情况下,我更喜欢这一切都是从 wp-admin 完成的,但我猜测我可能需要为此建立一个前端,以获得有限的控制权。

任何输入都非常感激。

亲切的问候

最佳解决方案

使用 Justin Tadlock 的插件 「Members」 。它使您能够创建新角色并编辑现有角色,以及添加自定义功能。所有你需要做的工作,可以点击几下。

我知道你在你对 ZaMoose 的回答中所说的话是在你自己写这个功能,所以我完全可以控制一切。这就是缺少开源软件的全部内容。 Justin Tadlock 发布了他的插件,所以你可以精确地使用它,所以你可以完全控制一切。

如果你真的想要重塑轮胎,可能会浪费你自己的时间几百小时,我无法阻止你,但你至少可以节省自己的麻烦,并使用 Tadlock 的插件来学习如何做你想要的。

一旦你有一个你想要的插件,你需要更改'map_meta_cap'标志到 true'capability_type'标志在你的帖子类型的注册功能,以便它说的东西不是’post’,’page’ 或任何其他’reserved’ 类型。然后,使用您的能力类型而不是帖子复制与帖子相关的所有功能 (例如 edit_postsedit_others_postspublish_posts 等) 。确保将所有这些权限分配给管理员 (在执行此操作之前,您将无法看到帖子类型),然后创建角色,模仿’contributor’ 角色的职位类型。

例如,说你的能力类型是 foobars,你想要给’shop owners’ edit_foobarsdelete_foobarsread 功能。这样他们可以创建自己的草稿,并删除这些草稿,但是由于它们没有 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。