WordPress会自动保存你对日志的修改记录。 当你更新了某篇日志或页面后,WordPress会保留你更新前的日志(页面),让你可以在任何时候取回更新前的内容。 这些老旧的日志存根将作为历史记录,永远保留在数据库中,使用户能够看到对日志的所有改动。
但有时候我们也需要对数据库进行一些整理。 每次对日志的修订都会使WordPress日志表中多出一行内容,而postmeta和term_relationships表中则可能会多出若干个条目。 删除一些不必要的记录可以释放硬盘空间,同时减轻MySQL的加载负担。
删除之前的日志记录
首先要记住: 备份好你的数据库。 下面的方法会直接在MySQL表上运行SQL语句,稍有偏差就会让你的WordPress无法运行,因此备份是必要的。
首先,找到在wp-config.php中规定的WordPress表前缀:
$table_prefix = 'wp_';
Wp_是默认表前缀,但你可以更改默认值,减少安全漏洞。 这里我们仍然将wp_作为默认的表前缀。
为了删除所有日志和页面的修改记录,请先打开一个MySQL管理工具(如phpMyAdmin)并运行以下语句:
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';
(如果你更改了表前缀,请对代码中的“wp_”也做相应更改。)
如果觉得这比较麻烦,你也可以选择删除某一特定日期前的所有日志修改记录,例如下面的语句将删除2010年1月1日前的所有日志修改:
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision' AND a.post_date < '2010-01-01';
(注意,MySQL的日期格式为年-月-日)
禁用或限制日志修改记录
在WordPress的wp-config.php文件中添加以下代码,永久性关闭保留日志修改记录的功能:
define('WP_POST_REVISIONS', false);
可以将值设为“true”以便重新激活保留修改记录的功能。
或者你也可以用一个正整数来限制所允许的日志修改记录的数量:
define('WP_POST_REVISIONS', 5);
上面的代码会为每篇日志保留至多5次修改记录,加上一次自动保存记录。 五次前的修改记录会被自动删除。
功能相同的WordPress插件
如果涉及到MySQL会让你觉得不安,那么你可以试试这些具有类似功能的WordPress插件。
原文:How to Control Post Revisions in WordPress
分类:新闻资讯