WordPress 文章修订历史清理插件

WordPress 中编辑文章之后会留下很多修订版本。在文章发布之后,这些修订版本可能就没什么用了,如果不清除掉,会占用很多数据库空间。有一些插件可以帮忙完成修订版本的清理工作。

下面提到了三个可以清除文章修订版本(revision)的插件:Delete-RevisionOptimize Database after Deleting Revisions 和 Revision Control

经过测试,我觉得 Optimize Database after Deleting Revisions 比较好。或者 Delete-Revision 也非常好,也是我一直在用的,但是很久没更新了,建议简单修正其源代码。这三个插件都能很好的工作于 WordPress 多站点(MultiSite)模式。

****************** 华丽的废话分割线 ******************

1. Delete-Revision

我之前一直用的是 Delete-Revision,很简单(功能单一),也很有效,而且目前也还能很好的工作。但是它只能一次清除所有修订草稿。(这样应该很好吧?)

但是这个插件最后更新于2009年6月30号。后来 WordPress 中有个函数修改了,它也没有更新。前些天测试插件的时候开启了 WordPress 显示警告和错误信息的功能(将 define('WP_DEBUG', true); 放到 wp-config.php 文件(位于 WordPress 安装文件夹根目录)的结尾即可),发现了这一问题:

Notice: has_cap was called with an argument that is deprecated since version 2.0! Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead. in ......\wp-includes\functions.php on line 2998

如果是中文的话,会显示:

Notice: 自 2.0 版本起,已不建议给 has_cap 传入一个参数!插件和主题中,用户等级的使用已不被支持。请换用角色和权限。 in ....../wp-includes/functions.php on line 2998

如果希望继续使用 Delete-Revision,建议自行修正该插件的上面的 has_cap 参数的问题。方法(详细信息请参考“关于 WP 中提示 has_cap 的问题”一文)如下:

将该插件源文件(delete-revision.php )中第 40 行的代码,

add_options_page('Delete-Revision', 'Delete-Revision',8, basename(__FILE__), 'my_options_delete_revision');

中的 8 改为 'manage_options' 。注意,单引号是必须的。即,

add_options_page('Delete-Revision', 'Delete-Revision', 'manage_options', basename(__FILE__), 'my_options_delete_revision');

另外,即使不修改源代码也是可以正常工作的。只不过有开头所描述的问题而已。

2. Optimize Database after Deleting Revisions

Optimize Database after Deleting Revisions 也是非常简单的一个插件,除了可以设定要保留的最新修订版本数量(所有文章都使用这一设定)之外,还可以同时对垃圾箱里的内容和垃圾评论进行清理,还可以清理一些残留的孤立的文章 Meta 元数据。

这个插件的文件夹名字是 rvg-optimize-database。安装并启用后,在 WP 仪表盘的“设置”菜单项下有“Optimize DB Options”,这是它设置页面;在“工具”菜单项下有“Optimize Database”,这是它的操作页面。

在“Optimize DB Options”选项页面:

  • Maximum number of – most recent – revisions to keep per post 表示设定要保留的每篇文章的最大的修订草稿数量。默认为 0,即不保留。
  • Delete all trashed items 表示同时删除所有在“回收站”中的内容。默认未选中。
  • Delete all spammed items 表示同时删除所有垃圾评论。默认未选中。
  • Delete unused tags 表示同时删除所有未使用的标签。默认未选中。
  • Keep a log 表示对所有执行的操作保存一份日志。默认未选中。这个没必要吧?
  • Scheduler 表示设置定期执行所有任务。默认未选中。这个也没必要吧?

  • Show ‘1-click’ link in Admin Bar 表示在 WordPress 后台顶部的导航条中放置一个“一键执行 Optimize DB”任务的快捷菜单。默认未选中。建议选中。这个挺好的,以后发布文章后,觉得修订版本没什么用了,就顺手一点击即可完成上面选项中设定的所有操作。
  • 剩下的部分建议不要随便设置。

当然,设定好选项后别忘记点击页面底部的 Save Options 按钮保存设置。

在“Optimize Database”页面,单击“Start Optimization”按钮就可按照上面的选项设置执行清理工作。当然,最简单的还是直接单击 WordPress 后台顶部的导航条中的“Optimize DB ( 1 click)”吧。

虽然清理数据库的功能对我来说挺鸡肋的,我都是在 phpMyAdmin 中整理数据库,但是这个插件确实挺不错。

3. Revision Control

Revision Control 貌似是设置好了之后会自动清理修订版本的一个插件。

安装并启用后,在 WordPress 仪表盘的“设置”菜单项下有个“Revision”就是它的设置页面了。可以针对不同文章类型(文章 post、页面 page,甚至如果你使用了表格插件 TablePress,其修订版本 TabePress Tables 也可以被自动清理)设定要保留的修订草稿数量。估计超过这个数量的修订版本会被自动清理。

但是这样的设定有个小问题:如果设定为 0,即不保存任何修订草稿,那是不是完全就不能用修订功能了呢?如果保存少量修订版本,比如 5 个,那么这些修订版本是不是就一直存在了呢,即使这文章已经发布可能再也不会修改了?

另外,这个插件启用后,WordPress 也会有个警告信息,虽然看情况不怎么严重:

Strict Standards: Non-static method Plugin_Revision_Control_Compat::options() should not be called statically, assuming $this from incompatible context in ....../wp-content/plugins/revision-control/revision-control.php on line 252

所以这个插件我就不打算用了,有兴趣的自己去测试吧。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/wordpress-revisions-clean-plugin/>。转载请保留此信息及相应链接。

14 条关于 “WordPress 文章修订历史清理插件” 的评论

    • 这个功能其实挺好的,对于突然崩溃的浏览器或者电脑有非常好的疗效。虽然我很少遇到电脑宕机或者浏览器崩溃,可是偶尔遇到一次真是倍感庆幸啊。

    • 好像从wp 3.6开始是有这么个功能了,据说是保存在本地浏览器缓存中,不过一直没有实验过。谢谢提醒 :)

    • 你是说修正 delete revision 那个插件?
      估计你都是直接从WP后台安装插件吧?用ftp软件连接到服务器,将描述的那个文件下载下来,用文本编辑器(如 notepad++)对照编辑,然后再上传回去就行了。

  1. 引用通告: WordPress 文章修订版本清理插件Delete-Revision | CY's

  2. 引用通告: 关于 WP 中提示 has_cap 的问题 | 水景一页

雁过留声,人过留名

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

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>