跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

点击“注册GitHub”,即表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

重复帖子和页面功能的后续问题 #61083

正常开放
卡罗来纳州人已打开此问题2024年4月25日·8条评论
正常开放

重复帖子和页面功能的后续问题 #61083

卡罗来纳州人已打开此问题2024年4月25日·8条评论
标签
[类型]讨论 对于高级别且尚未准备好实施的问题。 [类型]帮助请求 有关设置、实施或“我该怎么做?”问题的帮助。

评论

@卡罗来纳州人
复制链接
贡献者

卡罗来纳州人 评论2024年4月25日

描述

@大戟

关于重复帖子和页面功能#60637
我不确定该在哪里发布,我希望在下一次古腾堡发布的核心博客文章中能解决其中的一些问题,但我有一些问题。

  • 哪些用户角色有权复制帖子和页面?
  • 如何限制哪些用户角色具有此访问权限?
  • 我能把它完全关掉吗?
  • 如何将支持扩展到其他帖子类型?
  • 如何限制每个帖子类型?
  • 重复的帖子/页面中是否包含包括自定义分类法、特色图片和帖子元数据的分类法?
  • 例如,复制帖子时脚注和绑定会发生什么情况。
  • 这会被添加到WordPress Admin中“旧”文章和页面列表中的“快速编辑”界面吗?

拉取请求中也已经发布了一个问题:

大家好,这里是Yoast Duplicate Post的创建者:)
插件是否有钩子可以添加功能或用自定义的钩子替换操作?

分步复制说明

屏幕截图、屏幕录制、代码片段

环境信息

请确认您已搜索回购中的现有问题。

是的

请确认您已测试除古腾堡外的所有插件。

是的

@卡罗来纳州人 卡罗来纳州人补充[类型]帮助请求 有关设置、实施或“我该怎么做?”问题的帮助。 [类型]讨论 对于高级别且尚未准备好实施的问题。标签2024年4月25日
@史蒂文伯格
复制链接

史蒂文伯格 评论2024年4月25日

谢谢你在这方面的工作。我认为这是一个好主意,但可能还有一些障碍我还没有看到讨论过。

我是从另一个重复的post插件参与人员的经验中说的:https://wordpress.org/plugins/revisionary网站/.我想@恩里科巴托奇可能对此也有一些有用的反馈。

问题是:复制WordPress核心数据相对简单,但插件及其众多奇怪的数据存储方式很快就会出现问题。

例如,我用ACF字段测试了这个PR,字段中的数据没有被传递到重复的帖子中。我怀疑大多数插件也是如此。

目前,这个PR似乎没有复制post-meta。我还测试了自定义分类法,但它们没有被复制。

@法院院长
复制链接
贡献者

还要注意,本期中出现了重复的帖子主题:#38554

@卡罗来纳州人
复制链接
贡献者 作者

可以理解的是,DataViews还没有那么可扩展。但此复制选项不仅添加到使用数据视图的站点编辑器屏幕中。它也在经典主题的块编辑器中,这些新的数据视图现在与扩展器和用户都无关。
在这种情况下,它是一个新的主要功能,需要这样考虑。

@大戟
复制链接
成员

大戟 评论2024年4月29日

@卡罗来纳州人,感谢您提出非常重要的问题。我将在下面回答他们。这些答案代表了我对这个特性的想法,有些已经实现了,有些可能还在进行中。对于他们所有人,我们可以讨论其他途径。与所有其他操作一样,此功能仍在积极开发中。

  • 哪些用户角色有权复制帖子和页面?

该计划适用于任何能够编辑帖子以复制帖子的用户角色。具有编辑帖子功能的用户可以通过复制页面复制帖子。重复操作就像一条捷径。

  • 如何限制哪些用户角色具有此访问权限?

我认为我们不应该引入“duplicate_post”这样的功能。控制复制能力的可能是edit_posts功能。如果从用户中删除了edit_posts功能,则用户无法编辑帖子,也不能复制帖子。

  • 我能把它完全关掉吗?

还没有,但计划是让它成为可能。Actions API是数据视图的一部分,其扩展性将在#61084.

  • 如何将支持扩展到其他帖子类型?

默认情况下支持所有支持编辑器的帖子类型。因为复制是一种快捷方式,可以通过编辑器手动复制。

  • 如何限制每个帖子类型?

只要我们有API来注册和注销操作,就可以根据post类型有条件地注销重复的操作。

  • 重复的帖子/页面中是否包含包括自定义分类法、特色图片和帖子元数据的分类法?

目前重复的分类是类别和标记。我认为我们还应该复制当前复制帖子的用户具有分配功能的自定义分类法。我会为此做公关。
特色图片和帖子元也会被复制。以下是复制的属性的完整列表:author、comment_status、content、excerpt、meta、parent、password、template、format、featured_media、menuorder、ping_status,categories、tags。

  • 例如,复制帖子时脚注和绑定会发生什么情况。

它们也应该被复制,我刚刚做了一个测试,脚注似乎像预期的那样工作。

  • 这会被添加到WordPress Admin中“旧”文章和页面列表中的“快速编辑”界面吗?

目前还没有计划。

@大戟
复制链接
成员

@史蒂文伯格,感谢您伸出援手并分享一些见解😊

问题是:复制WordPress核心数据相对简单,但插件及其众多奇怪的数据存储方式很快就会出现问题。

是的,插件很容易出现问题。我认为Core不应该期望它的副本在任何情况下都能正常工作,它只应该被视为用户在编辑器上手动复制内容的捷径。使用未来提供的API,如果操作在某些场景中不能很好地工作,那么应该很容易删除该操作。

例如,我用ACF字段测试了这个PR,字段中的数据没有被传递到重复的帖子中。我怀疑大多数插件也是如此。

目前,这个PR似乎没有复制post-meta。我还测试了自定义分类法,但它们没有被复制。

自定义分类法尚未复制,但应该在将来复制。关于meta,我希望它已经被复制了。例如,脚注存储在元中,并且它们被正确复制。我们需要进行一些调试,以了解为什么ACF字段没有被复制。

提出的所有观点都很重要。目前该功能仅在插件中可用,因此在将其用于核心之前,我们可以对其进行润色,然后决定是否可以用于核心。

@dlh01号机组
复制链接
贡献者

该计划适用于任何能够编辑帖子以复制帖子的用户角色。具有编辑帖子功能的用户可以通过复制页面复制帖子。重复操作就像一条捷径。

请记住,用户可以编辑某个帖子类型中的帖子,而不能创建该帖子类型的帖子。例如:

//默认情况下,仅允许管理员创建页面。添加筛选器('注册表页post_type_args',功能($参数) {$参数[“功能”]['创建支柱'] ='管理选项';返回 $参数;},);

我认为,无论克隆是否以其自身的功能结束,它至少应该要求用户既可以编辑被克隆的帖子,也可以在帖子类型中创建帖子。

@大戟
复制链接
成员

大戟 评论2024年4月30日

该计划适用于任何能够编辑帖子以复制帖子的用户角色。具有编辑帖子功能的用户可以通过复制页面复制帖子。重复操作就像一条捷径。

请记住,用户可以编辑某个帖子类型的帖子,而无需创建该帖子类型的帖子。例如:

//默认情况下,仅允许管理员创建页面。添加筛选器('注册表页post_type_args',函数($args){$args['capabilities']['create_posts']='manage_options';返回$args;},);

我认为,无论克隆是否以其自身的功能结束,它至少应该要求用户既可以编辑被克隆的帖子,也可以在帖子类型中创建帖子。

好的一点,是的,我们还应该检查create_posts功能。关于角色和能力的文档https://wordpress.org/documentation/article/roles-and-cabilities网站/,从未提及create_posts,只引用了edit_posts。我想这应该在文档中更正。

@dlh01号机组
复制链接
贡献者

我还想说,我希望不使用复制_发布重新考虑能力。

将功能引入核心会带来维护成本,我不想忽视这些。在这种情况下,我认为机构为客户维护WordPress网站所提供的灵活性超过了成本。

具有编辑帖子功能的用户可以通过复制页面复制帖子。重复操作就像一条捷径。

无论如何,它只能被视为用户在编辑器上手动复制内容的快捷方式。

我知道这种比较在某些情况下是如何准确的。在我做的代理工作中,有很多情况下它是不准确的。例如,块编辑界面的某些部分可能不会显示给具有特定角色的用户。有些post-meta可能是以编程方式设置的,并且根本没有UI。在这些情况下,复制比用户通过复制和粘贴所能做的更多。

所以这是一个问题。但不管怎样,我有理由相信,我们的客户会要求我们控制谁有权访问重复帖子以及何时访问。

也许我最终会被证明是错的,但以下是我可以想到的一些场景:

  • 一家新闻机构希望允许其工作人员在大多数时间复制帖子,但他们不希望允许复制路透社等新闻机构联合发布的帖子。
  • 一个拥有大量员工的组织已经有了一个用于复制帖子的插件和围绕它构建的自定义基础设施,他们还没有准备好将其功能迁移到核心实现中,并提供如何使用它的培训。

功能API,特别是元功能,正是为了满足这些微妙的情况而设计的。

从技术角度来看,我认为很容易做到current_user_can('duplicate_post',$post_id)默认结果与current_user_can('edit_post',$post_id)。这样做将允许开发人员使用地图_元数据_地图用户has_cap过滤器以控制复制_发布满足其需求的元功能。我很乐意帮助贡献这些代码。

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
[类型]讨论 对于高级别且尚未准备好实施的问题。 [类型]帮助请求 有关设置、实施或“我该怎么做?”问题的帮助。
项目
还没有
开发

没有分支或拉请求

5名参与者