有没有办法对已发布的页面或帖子进行修订?您使用了哪些解决方法?

时间:2010-11-12 作者:e100

假设我已经发布了一个页面或帖子。我现在想做些改变,但我想让一位同事在它们上线之前检查一下。有什么办法吗?

Edit: I do realise this isn\'t currently possible as such and it\'s creative workarounds I\'m interested in.

在我目前工作的网站上,我还有一个单独的密码保护的“暂存”网站,用于起草主要内容更改/添加,一旦批准,我会复制并粘贴到实时网站。我想知道是否有人使用过类似的方法,但可能会自动“推送”到现场?

我知道这个问题:Database synchronization between dev/staging and production, 但这更多的是整个数据库的大规模同步,而不是单个页面或帖子。

Now offering a bounty in order to try and drive out some additional ideas for workarounds.

13 个回复
SO网友:fuxia

应该可以在“发布”框中添加按钮Save as changed copy. 你必须加入content_save_pre 然后将内容和所有元数据复制到具有草稿状态的新帖子中。审查后,这些职位必须重新合并。

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

SO网友:WraithKenny

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

此插件将执行您想要的操作。它创建了一个介于贡献者和编辑器之间的角色修改器。用户界面可以改进,内部代码必须解决WordPress缺少的许多功能,但是是的,这解决了您的问题:它允许您保存草稿(实际上是一个“待定的”修订版)。

2018 Update: <大约三年前,修正主义似乎已经停止了发展。但是,请参见Tessa关于修订的回答(https://wordpress.org/plugins/revisionize). <“修订”似乎是最好的解决方案。

2019 Update: <修订版现在由PublishPress拥有并积极开发。原作者也在与他们合作以支持它。

SO网友:MikeSchinkel

你好@e100;

如果你对a custom plugin solution 我可以设想几种方法。

这一过程类似于toscho所描述的“另存为已更改的副本”,但有一些细微的区别。插件可以lock editing of published posts 但允许你create derived posts with a new status like "Updated Draft" 可以通过自定义字段将其绑定回原始帖子。然后可以编辑、审阅这些衍生帖子,但您可以选择用更新替换原始帖子,而不是发布。

另一个过程可能use the built-in revision system 虽然我必须做一些研究,找出如何为浏览器提供一个不是最新的版本;也许可以将内容保存为自定义字段,并允许您继续处理它。

第三个过程可能是set up a second WordPress site as an editing sandbox, 使用web服务检索帖子,允许您远程编辑帖子,然后当您准备发布帖子时,可以将其推回到主站点。

类似于#3您可以set up an editing sandbox using a WordPress Multisite 为每个作者安装并创建非公开博客,作为他们自己的编辑沙盒。

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

如果你是looking for existing plugins 你想看看这些,尽管我还没有具体的经验,所以我不知道这些是否能满足你的需要:

  • Assignment Desk 是新闻机构使用WordPress作为内容管理系统的编辑工具。该插件的目标是使社区更容易、更高效地参与新闻制作过程。

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

  • Peter\'s Post Notes - 在WordPress 2.8及以上版本的“编辑帖子”和“编辑页面”屏幕侧栏上添加注释。当与Peter的协作电子邮件1.2及更高版本一起使用时,注释将与协作工作流中的电子邮件一起发送。仪表板上还有一个通用和专用的notes系统。

SO网友:Tessa

这是一个非常古老的问题,当我查看这里提到的一些插件时,我注意到许多插件没有得到维护,或者与我想要的不太一样。

最后,我找到了一个我喜欢的名字Revisionize. 虽然它的声誉和使用率还没有上升,因为它是相当新的,我喜欢它。

Pros:

  • 拥有5颗星的评级,4.9颗星的评级仍由其开发商维持Advanced Custom Fields 插件兼容Public Post Preview 插件

    Cons:

    1. 只有300多个活动安装4000多个活动安装
    2. 只有4个评论21个评论No Gutenberg support
    Updated lists on August 15, 2019. 虽然它仍然是一个很好的插件,但如果您使用的是Gutenberg blocks编辑器,它可能不适合您。

  • SO网友:EAMann

    不幸的是,现在不行。如果页面/帖子已经发布,你唯一的办法就是创建一个新的页面/帖子来保存你的编辑和评论privately 发布它,以便您的同事可以检查您的更改。然后用修订版替换live页面/帖子上的内容。

    Just FYI: 对已经发布的内容进行草稿状态更改是许多WordPress用户所不采用的工作流。在过去的一个月里,我也听说了至少3种不同的方式,人们希望这样做。。。因此,如果没有一个标准,您如何向已经发布的内容工作流提交修订,这将成为WordPress的一个功能的可能性微乎其微。

    SO网友:bueltge

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

    SO网友:Jason

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

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

    SO网友:NetConstructor.com

    虽然这可能无法解决您的具体问题,但我建议您查看wordpress上的“编辑流”插件。组织。这是一个非常灵活的插件,可能对您非常有用。

    SO网友:Xave

    现在有一个非常简洁的解决方案,使用插件Drafts of Post Revisions.

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

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

    发布修订草案时,任何更改都会在处理草案时集成回父级。还可以维护多个草稿。

    我会向任何人推荐这个插件——它正在成为WordPress网站的标准插件。然而,我怀疑在不久的将来,我们可能会在WordPress核心中看到这种功能的开发。。

    SO网友:Yaworek

    Hi @e100 :)

    我认为聪明的解决方案是让你使用现有的免费插件。它做了你写的所有事情。从WordPress下载即可。组织:https://wordpress.org/plugins/revision-manager-tmc/
    此插件经常定期更新

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

    SO网友:TecBrat

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

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

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

    SO网友:tehlivi

    找到此答案here 这对我很有用。我使用自定义用户角色时对其进行了轻微修改。

    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\' );
    

    SO网友:Kuba Serafinowski

    现在(现在是Yoast)复制帖子插件中有一个新功能,可以让您;重写(&W);“重新发布”;一个帖子。这允许您将编辑保存为草稿,并安排重新发布,将修订与原始版本合并。

    您可以在此处找到更多详细信息:https://yoast.com/help/how-to-use-the-rewrite-republish-feature-in-yoast-duplicate-post/

    结束

    相关推荐