リビジョンをコントロールして増やし過ぎないようにする

更新2022/01/16

前に作成した投稿内容を確認したい・戻したいという時のために、WordPressにはリビジョン機能があります。

リビジョン機能はそのままの設定にしておくと思わぬ弊害が出てしまうこともあるので、コントロールできるようにしておきましょう。

リビジョンコントロールはプラグインでもPHPでの記述でもできます。どちらもメモしているので、お好きな方法で設定してください。

リビジョンとは

リビジョンは前回公開・更新した内容や下書き保存、自動保存されたときのバージョンのことをいいます。

誤って別の内容を保存してしまった、以前書いていた内容を確認・復元したい場合、リビジョンを使ってそのときの状態に戻すことができます。

編集画面の右側の投稿パネルにリビジョンの項目が表示される。
投稿画面にリビジョンが表示されます。
変更したところがわかりやすく表示される。右側にある「このリビジョンを復元」ボタンで簡単に復元可能。

リビジョンの復元方法はこちらの記事に書いてあります。
【関連記事】リビジョン機能を使って記事を復元する

何もしないと増え続けるリビジョン

リビジョンは更新した時にコピーを作って保存するイメージです。そしてこのコピー数は制限設定をしないとひたすら増え続けます。

10件の記事しか公開していなくても、その10件の記事それぞれに5件ずつリビジョンがあると50件もの投稿がデータベース保存されることになります。一文字修正やスペースを一つ追加、といった微修正でも更新ボタンを押せば新たな投稿データが保存されてしまいます。

運用期間が長かったり、頻繁に投稿・リライトを繰り返すとすごい数になっていきます。

無制限に増えるため、更新(書き直し)頻度が多い分いほど投稿データも多くなり、データベースが肥大化していきます。

このように制限設定をしていないと、サイトが重くなって表示速度が遅くなる原因になります。

データが多いとサイトが重くなる

リビジョンというのは記事を保存するときに、そのコピーを作成して保存しています。公開用と保存用の2つを作成していることになります。

リビジョンの設定を初期状態のまま使っていると、サイトが重くなってしまう原因になりかねません。

私たち人間が紙の資料を探すとき、10枚の資料の中からと100枚の資料の中では、探し当てるの時間が変わります。
それはコンピュータも同じ。データが多いと探し出すのに時間がかかってしまいます。探しものをするなら全体の量が少ない方が早く見つけられます。

データ量が少ない = 早く見つける = ページの表示速度が速くなる
データ量が多い = 見つけるのが遅くなる = ページの表示速度が遅くなる

リビジョンは上限を設けるのがベター

初期設定だと増え続けてしまい、増えすぎるとページの速度に影響してしまうので、「リビジョンの上限」を設定しましょう。

一定数以上になったら古いリビジョンを削除するようにします。リライト量にもよりますが、上限数は3〜5くらいが目安。

便利なリビジョン機能ですが、そもそもこの機能を使わなくても問題なければ設定をOFFにしてもいいと思います。以前の状態を確認・復元することがなければ不要な記事内容が保存されるだけなので。

運用の仕方に合わせて設定してみてください。

WP Revisions Controlを使ってリビジョンコントロール

リビジョンの制限や削除などを行ってくれるプラグインは「WP Revisions Control」です。

WP Revisions Control – WordPress プラグイン | WordPress.org 日本語

インストールして有効化したら「投稿設定」の画面で設定していきます。

全体の最大数を設定

プラグインが有効化されると、投稿設定画面の下に「WP Revisions Control」が追加されます。

初期では「投稿・固定ページ・カスタムCSS」の三項目あるので、それぞれの最大保存数を入力して保存。

設定した保存数以上になる場合は古いものが削除され、新しいものが保存される仕組み。3以上にした方がいいようです。
【参照】 WP_POST_REVISIONS を 1 に設定した場合の注意点 | MaryCore

各投稿や固定ページのリビジョン削除や設定

リビジョンがある場合、各投稿の編集画面下に「Revisions」という項目が表示されます。
「全体の設定では3件を上限にしたけど、この投稿は5件にしようかな」というように全体で設定したものと変えたいときはここで個別に設定します。

ここでは投稿や固定ページの1つずつにリビジョン件数を設定したり、1つの投稿リビジョン全てを削除することもできます。

「Purge these revisions」ボタンはリビジョンの消去。このボタンでその投稿のリビジョン全部を削除できます。

「Limit this post to」の後にある空欄には、表示されている投稿の最大保存数を設定します。

wp-config.phpでリビジョンコントロール

プラグインを使わなくてもリビジョンの設定ができます。wp-confing.php ファイルに記述する方法です。

記述する場所はこのコードより上の行。

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

リビジョンを停止する

リビジョンを使わない、という場合は以下のコードを追加。

define('WP_POST_REVISIONS', false);

これでリビジョンデータは一切作られません。編集画面からリビジョン項目が表示されなくなります。

これはリビジョンを停止するコードなのでリビジョンの削除はされません。既に記事をいくつか書いていて、リビジョンデータを削除したい場合は、別途プラグインを使って削除します。

リビジョンの保存数を設定する

リビジョンの上限を設定するときは以下のコードを追加。

define('WP_POST_REVISIONS', 3);

数字のところに保存上限数を入れてください。その数字以上は保存されず、古いデータが削除され、新しいデータが追加されます。

自動保存のコントロール

リビジョン設定と合わせて設定しておきたいものに「自動保存」があります。名前の通り、自動的に投稿内容を保存してくれる機能です。

間違えてブラウザを閉じてしまったり、意図せずクラッシュしてしまった時には助かる機能です。

自動保存の「間隔」を設定

自動保存は上書きするものなので増えることはありませんが、デフォルトで1分間隔で自動保存されるのでわずらわしく感じる人もいると思います。

そんなときは以下のコードを wp-config.php に記述してください。

define('AUTOSAVE_INTERVAL', 3600);

「3600」の部分が保存間隔時間です。
秒単位で設定するので、1時間ごとに設定したい場合「60秒 × 60分 = 3600」となります。

自動保存を「停止」する

自動保存を停止したい場合は、functions.php に記述します。リビジョンや自動保存の間隔時間の設定とはファイルが異なるので要注意です。

以下のコードを functions.php に記述することで、自動保存が停止されます。

<?php
  function disable_autosave() {
    wp_deregister_script('autosave');
  }
  add_action('wp_print_scripts', 'disable_autosave');
?>

WP-Optimizeで不要なリビジョンを削除

もうすでにリビジョンが溜まってしまっている場合は、不要なリビジョンを削除しましょう。

データベースから直接削除することもできますが、プラグインの方が簡単なのでデータベースの操作方法が難しい方はプラグインを使って行いましょう。

使用するプラグインは「WP-optimize」です。
WP-optimize はデータベースの最適化を簡単にできるプラグインで、機能の1つにリビジョン削除があります。

WP-Optimize – Cache, Clean, Compress. – WordPress プラグイン | WordPress.org 日本語

インストールして有効化すると管理メニューに「WP-Optimize」が追加されるのでクリック。

移動した画面に「すべての投稿リビジョンをクリーン」という表示があるので、その横にある「最適化を実行する」ボタンをクリックします。

この操作だけでリビジョンを削除することができます。

リビジョンの制限をしない場合でも、リビジョンの整理は定期的に行う方がいいと思います。ぜひこういったツールを活用してください。

動作確認

WordPressバージョン5.7.2
WP Revisions Controlプラグインバージョン1.3
WP-Optimizeプラグインバージョン3.2.1
確認日2021/06/09

カテゴリー : WordPress

TOPへ