Autosave control in WordPress

时间:2017-02-24 作者:Robert Fitzpatrick

我一直在试图在WordPress中找到一个过滤器或设置来控制自动保存行为,最好是按帖子类型。在查询数据库时,我看到我们的自动草稿只能追溯到一周前,WordPress中是否有什么东西可以控制这种行为?如果可能的话,我想让一些帖子类型的自动草稿保留90天或更长时间?

我阅读了下面关于Autosave的文章,可能我有点误解,但我的经验是,当我创建一个新帖子时,记录处于自动草稿状态,而当我刷新新帖子时,又创建了一个记录。php。这篇文章似乎暗示每个用户只有一个自动保存。。。

https://codex.wordpress.org/Revisions

自动保存和另存为自动草稿可能不相关。我更感兴趣的是如何更长时间地维护自动草稿记录,这可能与自动保存无关。感谢您的指导!

1 个回复
最合适的回答,由SO网友:Fayaz 整理而成

Autosave(自动保存):

Autosave(自动保存)就是在编辑时在后台自动保存帖子。因此,它与修订版不同,对于每个帖子,每个用户只有一个自动保存。这来自文档:

对于任何给定的帖子,每个用户最多只能自动保存一次。新的自动保存覆盖旧的自动保存。

您可以通过定义AUTOSAVE_INTERVAL 常量inwp-config.php 文件例如,要每隔30秒自动保存正在编辑的帖子/页面,请执行以下操作:

define(\'AUTOSAVE_INTERVAL\', 30 );
如果您的网络连接丢失或计算机在保存更改之前意外关闭,这将非常有用。将autosave interval设置为30秒后,最多只会丢失30秒的编辑时间。

修订版:

修订版是关于决定您的帖子要保留多少更改。因此,如果打开修订,并且您保存了24次帖子,那么WordPress将保留第24个版本作为原始帖子,其他23个版本作为修订。

Note: WordPress不会将自动保存的版本保留为修订版。只有您有意进行的保存(通过单击“保存”或“发布”)才保留为修订。

默认情况下,如果修订被激活,WordPress会保留无限多的修订。因此,除非您指定,否则WordPress不会自动删除任何修订。但是,可以使用WP_POST_REVISIONS 常量或wp_revisions_to_keep 滤器

例如,要仅保留最后22个修订,可以在wp-config.php 文件:

define( \'WP_POST_REVISIONS\', 22 );
或者在主题中使用以下代码functions.php 文件或自定义插件中:

add_filter( \'wp_revisions_to_keep\', \'wpse257846_num_revisions_to_keep\', 10, 2 );
function wpse257846_num_revisions_to_keep( $num, $post ) {
    // you may use the $post variable to manipulate this number as needed
    if( \'my_custom_post\' == $post->post_type ) {
        // for \'my_custom_post\' post type, keep last 100 revisions
        // this is only about how many revisions to keep,
        // not about how old they are
        // to decide how old revision you want to keep,
        // you need to make more complex query about date here 
        return 100;
    }
    if( \'my_most_important_post\' == $post->post_type ) {
        // returning -1 means WordPress will never delete revisions
        // for \'my_most_important_post\' post type
        return -1;
    }
    // if for all other post types we want to keep just the last 22 revisions
    return 22;
}

相关推荐

How to delete post revisions?

我没有设置修订数量的限制,这使得我的一些帖子有20多个修订,那么如何删除这些修订呢?顺便说一下,我正在使用WPMU,并且有很多博客,那么如何删除我所有博客的WordPress修订版呢?