WordPress2.6のリビジョン管理を無効にする方法

WordPress 2.6から、投稿記事の履歴が無限に保存されるようになりました。この機能は、何度も書き換えた後に記事を元に戻したいとき、大いに役に立ちます。特に、複数人でWikiのように編集する使い方では、変更箇所を人目で把握できるため重宝します。

しかし、日記やコラムを書く用途に、一人で運用している場合はどうでしょうか?過去の変更箇所など、全く参照しない人が多いような気がします。そういう方には、このリビジョン管理は無用の長物。データベースを圧迫するだけの厄介物です。そこで、この機能を思い切って停止させてしまいましょう。

方法はシンプル。wp-config.phpに以下の定義を追加してください。1代限りのオートセーブ以外は停止します。追加場所はwp-settings.phpを読み込む前にしましょう。wp-settings.phpではWP_POST_REVISIONS未定義の場合、リビジョン管理を有効にしようとするからです。

define ('WP_POST_REVISIONS', false);

この定義は上記以外にもオプションがあります。必要に応じて使い分けてください。

Revision Management (codex.wordpress.org)

WP_POST_REVISIONS:

  • true (default), -1: 全リビジョンを保存
  • false, 0: リビジョン保存停止 (1代限りのオートセーブは除外)
  • (int) > 0: int数分のリビジョンを保存(+オートセーブ1代)。古い履歴は自動削除。

他の方法としては、wp-content\pluginsフォルダに次のような内容のプラグインをインストールすればOKです。ただし、公式アナウンスではないため非推奨です。

 <?php
/*
Plugin Name: no Revision Management
Plugin URI: https://wolfish.org/blog/p2008071701/
Description: Remove 'wp_save_post_revision' action.
Author: MadHyde
Author URI: http://wolfish.org/
*/

remove_action( 'pre_post_update', 'wp_save_post_revision' );
?>

WordPressは使いやすく機能追加も活発な反面、新機能のON/OFFを制御できる管理画面が未整備なのが残念ですね。

2008.07.27追記 - 最大履歴数も指定できるプラグインが登場しました。 Revision Control (WordPress.org)