这几天发现wordpress的一个问题,就是后台写文章的时候,每次保存文章,下面都会自动自动生成一个文章存档“wordpress文章修订历史功能”。如果你的文章保存的次数多了,下面都是一大堆的存档文章,其实这个倒没什么,主要的时它每个存档修订历史都独立占用一个id号,这样看着都不爽,像有洁癖的人100%不爽。

下面想办法把他给解决掉,从网上看了很多教程,最后找了个简单易懂的教程教程如下:

PS:已经测试可用。

1、先禁用 WordPress 文章修订历史功能。让它以后不要搞怪了。

通过FTP将Wordpress 根目录下的 wp-config.php 文件下载下来,之后在wp-config.php 添加下面一行:

define(‘WP_POST_REVISIONS’, false);  //禁用历史修订版本
define(‘AUTOSAVE_INTERVAL’, 86400);  //设置自动保存时间设置为一天

保存,之后上传覆盖。PS:上面的代码需要添加在define (‘WPLANG’, ‘zh_CN’); 或者 define (‘WPLANG’, ‘ ‘);的下面方可。

2、通过PHPMyAdmin 的SQL语句删除 WordPress 已存在的文章修订记录。

以前已经通过写入了数据库的文章修订记录我们肯定是不需要的啦,不得不承让三米有洁癖,所以下面我们在PHPMyAdmin 中通过SQL 语句可以删除它们吧,SQL语句如下:

DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_type = ‘revision’);
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts WHERE post_type=’revision’);
DELETE FROM wp_posts WHERE post_type=’revision’;

这2步下去,终于搞定了禁用并删除 WordPress 文章修订记录的文章。wordpress真折腾啊。

3、在functions.php添加相应代码禁止的方法

WP3.1以后我就一直使用了,目前为止表现不错。在主题的 functions.php 文件里面加入如下代码即可
/* 移除自动保存和修订版本 */
remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
wp_deregister_script('autosave');
}

使用环境:WordPress 3.1.2,原理上 3.0 以上都支持,WP3.0.x 木有测试..

补充:

一、禁用WordPress 自动保存功能(AutoSave)

方法一:找到wordpress/wp-admin/目录下的post-new.php,post.php,page-new.php,page.php这四个文件。找到代码wp_enqueue_script('autosave');?直接删除,或者在前面加上”//”将代码注释掉:

// wp_enqueue_script('autosave');

二、禁用WordPress文章历史修订版本功能(Revisions)

同关闭自动保存功能一样,在wp-config.php中注释/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */前增加以下代码即可:

define('WP_POST_REVISIONS',false);
//参数可选false(不保存任何版本);true(保存所有修订);-1(作用同true参数);n(大于0的证书,保存n个修订版本,超出旧版本将被删除);