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,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);
define('WP_POST_REVISIONS',5);
上面的代码会为每篇日志保留至多5次修改记录,加上一次自动保存记录。 五次前的修改记录会被自动删除。
功能相同的wordpress插件
如果涉及到MysqL会让你觉得不安,那么你可以试试这些具有类似功能的wordpress插件。
原文:How to Control Post Revisions in wordpress