以下方法来自programingnote.com(英文)
重要更新:原来在这里有一个插件可用,囧rz 具体访问disabled revision(英文)
自Wordpress2.7之后,如果你再去修改已经发布的文章,如果你不够眼明手快,Wordpress会智能的帮你自动保存,有时候网络不够好,Wordpress更是智能得帮你保存N个版本的文章,然后你就会发现怎么也删除不掉它们,等你发布新文章的时候,你的文章ID会惊人的跃进(比如我的这一篇和上一篇文章即是如此)。原来Wordpress自动保存的各个版本也算到文章ID里去。
那如何把它给关掉呢?我的前提跟这位老师很像:不能把自动保存关掉,但必须把那些修改版本的产生关掉。通过搜索,我找到了答案。感谢互联网的分享精神吧。
Step 1.打开wp-includes\default-filters.php 找到以下代码
add_action( 'pre_post_update', 'wp_save_post_revision' );
把它删除或者使用//注释掉:
// add_action( 'pre_post_update', 'wp_save_post_revision' );
Step 2.打开wp-admin\includes\post.php 找到wp_create_post_autosave函数(大约在1030 3308行),找到代码应该在3323行(我用的是中文版):
$return = _wp_put_post_revision( $post );
在这里就要修改return的参数,应为return edit_post(); 因此,function wp_create_post_autosave应该改为:
function wp_create_post_autosave( $post_id ) {
$translated = _wp_translate_postdata( true );
if ( is_wp_error( $translated ) )
return $translated; // Only store one autosave. If there is already an autosave, overwrite it.
if ( $old_autosave = wp_get_post_autosave( $post_id ) ) {
$new_autosave = _wp_post_revision_fields( $_POST, true );
$new_autosave['ID'] = $old_autosave->ID;
return wp_update_post( $new_autosave );
} // Otherwise create the new autosave as a special post revision
// return _wp_put_post_revision( $_POST, true );
return edit_post();
}
Technorati 标签: web
相关阅读
关键词: web
感谢分享,我的这个方法特点是不影响自动保存的功能,用插件是做不到的。虽然有很多用户呼吁WordPress提供选项来开启/关闭revisions,但核心开发者对此却没什么兴趣。
用插件是可以做到的呀好像。而且你的做法好像需要修改下……