支持的最大发布版本数

时间:2013-06-13 作者:mustafa

我们正在运行一个基于WP 3.5.1的新闻网站。一些编辑抱怨说,帖子编辑页面上的所见即所得编辑器在某些帖子中工作不正常。编辑按钮不显示。

在某些情况下,我们需要多次更新帖子(比如超过500次)<这可能是原因吗
如果我设置WP_POST_REVISIONS 到10
旧版本会自动删除还是保留?

2 个回复
SO网友:fuxia

您应该设置WP_POST_REVISIONS 到一个固定的数字。如果您不这样做,WordPress将保留无限数量的修订。请参见函数wp_revisions_to_keep():

function wp_revisions_to_keep( $post ) {
    $num = WP_POST_REVISIONS;

    if ( true === $num )
        $num = -1;
    else
        $num = intval( $num );

    if ( ! post_type_supports( $post->post_type, \'revisions\' ) )
        $num = 0;

    return (int) apply_filters( \'wp_revisions_to_keep\', $num, $post );
}
另一方面,如果您需要如此大量的更改,您应该重新访问编辑工作流。当然有办法降低这个数字。

SO网友:birgire

收件人地址:

如果我将WP\\u POST\\u REVISIONS设置为10,这些帖子会发生什么情况?旧版本会自动删除还是保留?

您有以下操作:

add_action( \'pre_post_update\', \'wp_save_post_revision\' );
在中默认设置/wp-includes/default-filters.php.

如果您检查source 属于wp_save_post_revision() 您可以看到,它将删除当前帖子的其余修订:

$delete = count($revisions) - WP_POST_REVISIONS;
使用wp_delete_post_revision() 当挂钩pre_post_update 对于给定的$post_id, 执行自动保存时除外。

以下是来源的相关部分wp_save_post_revision():

// WP_POST_REVISIONS = true (default), -1
if ( !is_numeric( WP_POST_REVISIONS ) || WP_POST_REVISIONS < 0 )
        return $return;

// all revisions and (possibly) one autosave
$revisions = wp_get_post_revisions( $post_id, array( \'order\' => \'ASC\' ) );

// WP_POST_REVISIONS = (int) (# of autosaves to save)
$delete = count($revisions) - WP_POST_REVISIONS;

if ( $delete < 1 )
        return $return;

$revisions = array_slice( $revisions, 0, $delete );

for ( $i = 0; isset($revisions[$i]); $i++ ) {
        if ( false !== strpos( $revisions[$i]->post_name, \'autosave\' ) )
                continue;
        wp_delete_post_revision( $revisions[$i]->ID );
}

结束

相关推荐

How to delete post revisions?

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