说我已经发布了页面或帖子。我现在想进行更改,但是我希望同事在它们上线之前先进行检查。有什么办法吗?

编辑:我确实意识到这目前尚不可行,这是我感兴趣的创造性解决方法。

在网站上我目前正在研究中,我还有一个受密码保护的“登台”站点,用于起草主要的内容更改/添加,一旦获得批准,我将复制并粘贴到实时站点。我想知道是否有人使用过类似的方法,但也许可以自动将“推送”到实时站点吗?

我知道这个问题:开发/登台与生产之间的数据库同步,但这就是有关整个数据库而不是单个页面或帖子的批发同步的更多信息。

现在提供赏金,以尝试找出一些其他解决方法。

评论

如果任何人都可以回答这个问题,那么也可能会回答一个较旧的相关问题。

wordpress.org/plugins/revisionize似乎可以满足您的需求。方便的插件。

截至2019年,请查看wordpress.org/plugins/revision-manager-tmc。这是一个较新的播放器,但更多功能完善且维护得更好。

我为此创建了一个小插件。看一下这个。可能会有所帮助:github.com/malithmcr/wp-draft-published

#1 楼

应该可以在“发布”框中添加一个按钮“另存为更改后的副本”。您必须先插入content_save_pre,然后将内容和所有元数据复制到具有草稿状态的新帖子中。经过审查后,帖子必须合并回去。

我还没有这样做,但这确实是需要的。

评论


我喜欢这个简单的主意。该API仅需要一个Copy Post Revision功能,该功能就可以复制完整的修订版,包括。元数据添加到新的(尚未创建)或现有的帖子中。完成后,草稿副本可以在此后再复制到原始文章中。

– hakre
2010年11月12日在22:56



@toscho我只是想知道这是否仍然是解决问题的最佳方法?也许有人有一个示例代码或更具体一些?谢谢

– dashaluna
2011-11-22 13:38

#2 楼

http://wordpress.org/extend/plugins/revisionary/

该插件将完成您想要的事情。它创建了一个角色Revisor,该角色介于Contributor和Editor之间。可以改进UI,内部代码必须解决许多WordPress缺少的功能,但是是的,这解决了您的问题:它将允许您保存草稿(实际上是“待定”的“修订”)。

2018更新:修订版似乎已停止开发大约3年前。但是,请参阅Tessa关于修订的答案(https://wordpress.org/plugins/revisionize)。 Revisionize似乎是最好的解决方案。

2019更新:Revisionary现在由PublishPress拥有并正在积极开发中。原始作者还与他们合作以提供支持。

评论


我刚刚在新升级的3.1.2安装中测试了此插件。实际应用待定修订的过程似乎已中断。考虑到文档的稀疏性,尚不清楚它是否在3.1.2中被破坏,或者预期的UX是批准方必须将修订手动复制粘贴到已发布的帖子中。无论如何,我都不会将其发布给我的用户。

– marfarma
2011年6月3日23:37

UI非常古怪,但这是因为据我所知,还没有真正将其正确集成到WP中的真正方法。 WP只是没有挂钩。当我测试它时,它确实起作用了……在“恢复”修订的地方有一个按钮或链接。您不必复制粘贴任何内容。从那以后,我切换为让用户仅通过电子邮件向编辑发送修订请求,因为我不喜欢UI。

–WraithKenny
2011年6月15日22:24

同意,如果这个插件经常被我打断,并且使用起来非常糟糕。

–詹姆斯
2015年2月11日在23:46

我已经有3 1/2年没有使用它了;我不认为它仍然可以工作。必须有一种新的/更好的方法,因为自从这篇文章以来,WP核心中的情况有了很大的改善。

–WraithKenny
2015年2月17日下午16:37

似乎今天起就可以使用

–约翰
15年10月16日在16:28

#3 楼

您好@ e100;

如果您对自定义插件解决方案感兴趣,我可以设想几种方法。


类似于@toscho所说的“保存”的过程作为更改副本”,但有一些细微的差异。该插件可以锁定已发布帖子的编辑,但允许您创建具有新状态的派生帖子,例如“更新的草稿”,可以通过自定义字段将其绑定到原始帖子。这些派生的帖子然后可以进行编辑,审查等,但是除了可以选择不发布外,您还可以选择用更新来替换原始帖子。
另一个过程可以使用内置的修订系统必须进行一些研究才能弄清楚如何为浏览器提供最新版本;也许将内容另存为自定义字段,然后让您继续进行操作。
第三步可能是将第二个WordPress网站设置为编辑沙箱,使用网络服务检索帖子,让您进行远程编辑,然后准备发布它们时,可以返回主站点。
与#3相似,您可以使用WordPress Multisite安装设置编辑沙箱,并为创建非公开博客每个作者都可以拥有自己的编辑沙箱。

同样,所有这些选项都需要自定义插件开发。

如果您正在寻找现有的插件,则想看看尽管我还没有这些方面的具体经验,所以我不知道其中任何一个是否可以满足需要:


工作台是新闻机构的编辑工具使用WordPress作为其内容管理系统。该插件的目的是使社区与新闻制作过程的互动更加轻松和高效。
Edit Flow提供了一套功能,可以在WordPress中重新定义您的编辑工作流程。
彼得的帖子注释-在WordPress 2.8及更高版本中的“编辑帖子”和“编辑页面”屏幕的侧边栏上添加注释。与Peter的Collaboration E-mails 1.2及更高版本一起使用时,便笺将与协作工作流中的电子邮件一起发送。仪表板上还有一个通用和私人注释系统。


评论


您的第一个建议听起来很不错!哦,感恩节快乐迈克,看到您总是向我们所有人提供出色的建议/解决方案!

– NetConstructor.com
2010-11-29 18:02

所有这些建议都是针对处理未发布帖子的插件的。 WordPress所没有的(其他所有CMS都没有)是一种将修订的草稿保存到已发布的帖子的方法。

–詹姆斯
2015年2月11日在23:48

#4 楼

这是一个非常老的问题,在查看这里提到的某些插件时,我注意到许多插件没有得到维护或与我所寻找的不完全相同。

最后,我找到了一个我喜欢叫Revisionize。虽然它的声誉和使用率还很新,但还没有提高,我还是很喜欢。



WordPress中的漂亮UI,按钮很容易在使用该插件时,查找并有警告和注释。按按钮将执行的操作。
具有5星4.9星评级
仍由其开发人员维护
与Advanced Custom Fields插件兼容
与Public Post Preview插件兼容

缺点:



只有300多个4,000+活动安装

>仅4条评论21条评论
无Gutenberg支持

2019年8月15日更新列表。虽然它仍然是一个很棒的插件,但是如果您使用的是Gutenberg块编辑器,则可能不是给你的。

评论


嘿,我是Revisionize的插件作者。经过很长的路要走-要发布2.1版本,该版本增加了改进的多站点/网络兼容性。最新版本具有一个基本的设置面板,现在通过revizeize.pro提供了一些付费附加组件,它增加了对贡献者的支持,以修改现有内容并提交更改以供审核。现在有1000多个活跃安装和11个5星级评论。

–贾米
18-3-7在6:43



是的,您最多有18条5星级评论!我真的相信这个(和Revisionize)应该是当今公认的答案。

–WraithKenny
18-10-4在16:23

Revisionize有了实质性的改进。谢谢@JamieChong

–timofey.com
19-09-4在18:54



#5 楼

不幸的是,目前不在。如果页面/帖子已经发布,那么您唯一的办法就是创建一个新页面/帖子来保存您的编辑并私下发布,以便您的同事可以检查您的更改。然后,将您的实时页面/帖子中的内容替换为修订后的版本。

仅供参考:对许多已发布的内容进行状态草稿更改是许多WordPress用户都不采用的工作流程。我听说过,人们也希望在过去的一个月中至少完成3种不同的方式...因此,如果没有标准的此处(即,您如何将修订提交到已发布的内容的工作流程,成为WordPress功能的可能性很小。

评论


嗯,这种工作流程的需求并不大,这对我来说确实很奇怪,尤其是随着WP越来越多地作为具有自定义内容类型等功能的CMS被推动。

– e100
2010年11月13日在13:14

问题在于,许多不同的人对“这种工作流程”的定义不同。如果有一个标准,将很容易包括在内。如果没有标准,则为一种工作流程定制WP会疏远其他工作流程。就目前而言,让开发人员针对特定情况构建自定义解决方案更加容易。

–EAMann
2010年11月14日,0:31

我很想听听人们想要管理工作流的三种不同方式。

– MikeSchinkel
2010-11-22 10:52

我特别记得这两个:1)基于角色:参与者可以编辑帖子的内容,然后单击“提交修订”,必须先对其进行审核,然后才能进行更改。 2)分割修订:用户可以选择任何帖子的评论,并自动将修订复制到新帖子中,而无需回滚现有帖子。

–EAMann
2010-11-22在16:00

#6 楼

也许是一个简单的解决方案:插件http://wordpress.org/extend/plugins/duplicate-post/用于复制帖子

#7 楼

有一个名为Live drafts的插件似乎运行得很好吗?

http://wordpress.org/extend/plugins/live-drafts/

评论


自更新以来的4年

–user68816
19年6月12日在23:14

如果您仍在寻找解决方案,请查看以下内容:github.com/malithmcr/wp-draft-published

–马利斯
19年8月2日在16:00

#8 楼

虽然这可能无法解决您的特定问题,但建议您查看wordpress.org上的“ Edit Flow”插件。这是一个非常漂亮的插件,可能对您很有用。

评论


不。 Editflow仅允许设置未发布帖子的多个状态。所需要的是一种将正在进行的更新的草稿保存到已发布的帖子中的方法。这是WordPress中最令人震惊的遗漏之一。

–詹姆斯
2015年2月11日在23:45

#9 楼

现在有一个非常简洁的解决方案,带有一个插件“修订版草稿”。

允许用户创建已发布的草稿(或自定义文章类型)的草稿修订版,该草稿是作为子级创建的。帖子的副本。

可以通过“比较修订”功能将其与已发布的父文档进行比较。

发布修订版草稿时,所有更改都将在草稿处理后重新集成到父级中。也可以维护多个草稿。

会推荐给任何人-它正在成为WordPress网站的标准插件。但是,我怀疑我们可能会在不久的将来在WordPress核心中看到这种功能。.

评论


距更新5年

–user68816
19年6月12日在23:14

#10 楼

嗨@ e100 :)

我认为智能解决方案将是您使用现有的免费插件。它完成了您编写的所有内容。只需从WordPress.org下载它即可:https://wordpress.org/plugins/revision-manager-tmc/

此插件经常更新并定期更新

版本管理器TMC与第二个免费插件配合使用可以很好地编辑用户角色功能-用户角色编辑器https://wordpress.org/plugins/user-role-editor/

评论


截至2019年,这是最完整的解决方案。与Revisionize相似,但更直观,更完整。 1)修订链接到原始帖子; 2)允许您为编辑者分配“贡献角色”,同时限制他们在原始帖子中的位置; 3)它使修订版看起来像是修订版,即隐藏了发布选项等。

–timofey.com
19年4月1日在23:52

和ACF支持。

–user68816
19年6月12日在23:10

#11 楼

我可能最终会使用其他答案中提到的插件之一,但是当我需要此功能并且没有时间去寻找插件时,就是要确保修订工作正常,保存更改并立即还原它们。

现在,我的“草稿”在我的修订系统中。

在生产系统上不是很好,但在开发系统上就足够好了,直到您决定要使用的插件为止。

#12 楼

在这里找到了对我有用的答案。我在使用自定义用户角色时对其进行了一些修改。

function published_to_pending( $post_id ) {
    global $post;
    if ( ! is_object( $post ) ) {
        return;
    }

    if ( ! current_user_can( 'publish_posts' ) && $post->post_status == 'publish' ) {
        // stop recursion call
        remove_action( 'save_post', 'published_to_pending' );

        // update the post, which calls save_post again
        wp_update_post( array( 'ID' => $post_id, 'post_status' => 'pending' ) );

        // re-hook this function back
        add_action( 'save_post', 'published_to_pending' );
    }
} 

add_action( 'save_post', 'published_to_pending' );