静坐不虚兰室趣 清游自带竹林风

wordpress日志ID不连续的解决方法

在设置永久链接时,原打算使用用日志ID,仔细一看发现日志ID是不连续的。搜索一下,发现是wordpress的日志修订功能与自动保存功能导致的。原因找到了,只要禁用这两项功能(必须两项功能同时都禁用),就可解决WordPress的日志ID不连续。

1.禁用WordPress日志修订功能

在wp-config.php中的代码

require_once(ABSPATH . ‘wp-settings.php’);

前增加如下代码:

define(‘WP_POST_REVISIONS’,false);

关于 WP_POST_REVISIONS 这个变量的详细设置为:

true(默认)或者 -1:保存所有修订版本;
false 或者 0:不保存任何版本(除了自动保存的版本);
大于 0 的整数 n:保存 n 个修订版本(+1 只保存自动保存版本),旧的版本将被删除。

那如何删除由于Post Revisions导致的表内的垃圾信息呢?你只需通过phpmyadmin执行如下SQL脚本,数据库操作前最好先进行一下备份。

删除是Post Revisions垃圾信息,请执行:

delete from wp_posts where post_type = ‘revision’;

还可以再执行:

delete from wp_postmeta where meta_key= ‘_edit_lock’;

delete from wp_postmeta where meta_key =’_edit_last’;

删除数据库中文章特殊数据表wp_postmeta中meta_key字段为_edit_lock(代表上次修改post的修改时间)和 _edit_last(指最后一次编辑时间)的数据,然后全选所有表,下拉列表中选择使用phpmyadmin“优化表”功能。

2.禁用WordPress自动保存功能

在wordpress/wp-admin/目录下找到post-new.php,post.php,page-new.php,page.php这四个文件。(注:wordpress3.0已经没有page-new.php与page.php这两个文件)在这四个文件中找到代码 wp_enqueue_script(‘autosave’);  直接删除,或者在前面加上”//”将代码注释掉,如:
// wp_enqueue_script(‘autosave’);  即可。

如何将不连续的日志ID重新设置为连续的呢?这个是比较麻烦的,设置一个ID就要4条SQL语句,我仅仅举一个例子,将ID为59的文章修改为ID为58,需要执行以下语句。

update wp_posts set id = 58 where id = 59;
update wp_term_relationships set object_id = 58 where object_id = 59;
update wp_postmeta set post_id = 58 where post_id = 59;
update wp_comments set comment_post_ID = 58 where comment_post_ID = 59;

如果用户需要修改的文章较多,需要批量复制、修改和执行上面四行。

发表评论

电子邮件地址不会被公开。 必填项已用*标注