有什么方法可以起草已发布页面或帖子的修订版?您使用了什么解决方法?


38

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

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

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

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

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


3
如果任何人都可以回答,那么可能还会回答一个较旧的相关问题
Jan Fabry

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

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

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

Answers:


21

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

我还没有做到这一点,但这确实是需要的。


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

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

10

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

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

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

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


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

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

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

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

1
似乎今天为止一直在工作
约翰·

6

@ e100 ;

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

  1. 该过程类似于@toscho所说的“另存为更改后的副本”,但有一些细微的差异。该插件可以锁定已发布帖子的编辑,但是允许您创建具有新状态的派生帖子,例如“更新的草稿”,可以通过自定义字段将其绑定到原始帖子。这些派生的帖子然后可以进行编辑,审阅等,但是除了可以选择发布之外,您还可以选择用更新来替换原始帖子。

  2. 另一个过程可以使用内置的修订系统,尽管我必须做一些研究才能弄清楚如何为浏览器提供最新版本。也许将内容另存为自定义字段,并允许您继续进行处理。

  3. 第三个过程可能是将第二个WordPress网站设置为编辑沙箱,使用Web服务检索帖子,允许您远程编辑它们,然后在准备发布它们时可以将其推回主站点。

  4. 与#3相似,您可以使用WordPress Multisite安装来设置编辑沙箱,并为每个作者创建非公开博客以使其拥有自己的编辑沙箱。

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

如果您正在寻找现有的插件,尽管我还没有具体的经验,但是您想看看这些插件,所以我不知道这些插件是否能满足您的需求:

  • 分配台是使用WordPress作为其内容管理系统的新闻机构的编辑工具。该插件的目标是使社区对新闻制作过程的参与更容易,更高效。

  • Edit Flow提供了一套功能,可以在WordPress中重新定义您的编辑工作流程。

  • 彼得的帖子注释 -在WordPress 2.8及更高版本中的“编辑帖子”和“编辑页面”屏幕的侧边栏上添加注释。当与Peter的Collaboration E-mails 1.2及更高版本一起使用时,便笺将与协作工作流中的电子邮件一起发送。仪表板上还有一个常规和专用注释系统。


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

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

4

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

最后,我找到了一个我喜欢的版本Revisionize。由于它的名称很新,因此它的声誉和使用率尚未提高,但我喜欢它。

优点:

  1. WordPress中漂亮的UI,按钮很容易找到,当您使用插件时,会有警告和注释,按下按钮会做什么。
  2. 拥有5星级 4.9星级
  3. 仍由其开发商维护
  4. 高级自定义字段插件兼容
  5. Public Post Preview插件兼容

缺点:

  1. 仅300+ 4,000+个活动安装
  2. 只有4条评论 21条点评
  3. 没有古腾堡的支持

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


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

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

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

3

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

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


2
嗯,它奇在我看来,这种工作流程是不是在需求较大,特别是WP日益被推作为一个全功能的自定义内容类型CMS等
E100

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

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

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



1

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


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

1

现在有一个非常好的解决方案,它带有一个插件Posts of Revisions

可以允许用户创建已发布帖子(或自定义帖子类型)的修订版本草稿,该版本将被创建为该帖子的子副本。

可以通过比较修订功能将草稿与其已发布的父草稿进行比较。

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

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


自更新以来5年

1

嗨@ e100 :)

我认为聪明的解决方案将是您使用现有的免费插件。它完成了您编写的所有内容。只需从WordPress.org下载它即可:https : //wordpress.org/plugins/revision-manager-tmc/
这个插件经常被定期更新

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


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

和ACF支持。

0

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

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

在您决定要使用的插件之前,在生产系统上不是很好,但是在开发系统上就不够好。


0

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

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' );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.