程序员人生 网站导航

如何处理WordPress的日志修改记录

栏目:WordPress时间:2013-12-20 22:58:20

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐