リビジョンをコントロール!回数制限の設定や削除方法 | KoMariCote

リビジョンをコントロール!回数制限の設定や削除方法

更新2024/06/08

WordPressには更新した投稿でを、更新前の内容を確認・戻すことができるように「リビジョン」という機能があります。

リビジョン機能は便利なものではありますが、思わぬ弊害が出てしまうこともあるので、リビジョン生成の数に制限をかけたり不要なリビジョンを削除したりと、その数をコントロールできるようにしておきたいものです。

リビジョンとは

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

誤って別の内容を保存してしまった、やはり以前に書いた内容に戻したい、と言った場合に修正前の内容に戻すことができます。どこを変更したかということを確認する上でも便利です。

変更したところがわかりやすく表示される。右側にある「このリビジョンを復元」ボタンで簡単に復元可能。

なぜリビジョンの制限設定が必要?

リビジョンデータがあることによって、以前の状態を復元したり変更内容を確認することができます。
しかし、そのデータが増えすぎるとデメリットが発生することも覚えておきたいところです。

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

リビジョンは記事を更新するときに、修正前のコピーを作って保存したデータです。そのためリビジョン機能を有効にしている場合、更新の際に公開用と保存用の2つを作成していることになります。

更新する際に「更新前」と「更新後」の2つのデータを保存している

そしてこのコピーデータは制限をしないとひたすら増え続けます。

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

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

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

WordPressのデフォルトはリビジョン機能がONになっており、またリビジョン数の制限はありません。設定を初期状態のままにしていると、サイトの表示速度に影響を与える可能性があります。

回数制限をしていないと無制限に増えるため、更新(書き直し)頻度が多いほどデータも多くなります。データベースが肥大化すると、サイトが重くなって表示速度が遅くなる原因になります。

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

不要なデータを極力減らし処理速度を上げるためにもリビジョンの数を増やしすぎないようにすることが大切です。

リビジョンの上限を設定する or リビジョン機能のOFF

不要なデータが溜まらないよう「リビジョンの上限」を設定します。上限を設定すれば一定数以上になったら古いリビジョンは削除されます。
リライト量や頻度にもよりますが、上限数は3〜5くらいが目安。

保存数は3以上にした方がいいようです。
【参照】 WP_POST_REVISIONS を 1 に設定した場合の注意点 | MaryCore

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

ただ万が一ということもあるので、心配な方はリビジョン機能をONのままにし、上限数の設定をするのがベターです。

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

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

制限をかけたい場合は、管理画面から数字を入力するだけでOK。投稿タイプごとや記事ごとでリビジョン数を設定することもできます。

動作確認環境

  • WordPressバージョン  :  6.1.1
  • プラグインバージョン  :  1.4.3
  • 動作確認日  :  2023/03/22

まずはプラグインをインストールして有効化。

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

有効化したら「投稿設定」の画面で設定していきます。

全体の最大数を設定

プラグインが有効化されると、投稿設定画面の下に「WP Revisions Control」が追加されます。
リビジョン数の設定可能な項目が表示されるので、それぞれの最大保存数を入力して保存。(テーマによって表示される項目が変わると思います)

設定した保存数以上になる場合は古いものが削除され、新しいものが保存される仕組みになっています。

各投稿で残すリビジョン数を変更

プラグインを有効化すると、投稿パネルに「WP Revisions Constrol」の項目が表示されます。ここでは1つの記事ごとにリビジョン件数を設定したり、記事にあるリビジョン全てを削除することもできます。
「全体の設定では3件を上限にしたけど、この投稿は5件にしようかな」というように全体で設定したものと変えたいときはここで個別に設定します。

「残すリビジョンの数:」のところに数字を入力します。

すでに存在するリビジョンより少ない数字の場合、「超過したリビジョンを削除」という項目が表示されます。ここをクリックすると再度確認画面が表示され、そこで「削除」をクリックし更新すると、超過した分のリビジョンが自動的に削除され、今後も設定した数のリビジョンが保存されるようになります。

制限数を全体と同様に戻したい場合は数字を削除して空欄にします。

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);

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

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

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

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

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

define('WP_POST_REVISIONS', 3);

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

これは記事ごとに数字を変更することができないので、記事ごとで上限を変えたい場合は WP Revisions Control プラグインを使用します。

自動保存のコントロール

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

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

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

自動保存のデータは更新の際に上書きするされるものなので増えることはありませんが、デフォルトでは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 の最適化でリビジョンクリーン

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

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

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

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

リビジョンに限らずゴミ箱や自動下書き、スパムコメントなどのデータを削除することもできるので、不要なデータがあれば実行していきましょう。

WP-Optimize の設定でスケジュールや削除データ指定

初期状態ではチェックが入っていないので適用されませんが、残しておきたいデータや、定期的に削除したいデータを設定することができます。リビジョン以外のスケジュール設定もここで行います。

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

あまりプラグインを入れておきたくない人は、この作業が完了したら無効化・削除して大丈夫です。

データベースからSQLコマンドで削除

データベース操作に慣れていない方はプラグインを使った方が無難ですが、どうしてもプラグインを入れたくない時などはこちらの方法になります。
行う際はバックアップ必須です。もし消したくないものが消されてしまった場合でも戻せるようにしておきましょう。

データベースから一括で投稿のリビジョンを削除する場合、以下のコマンドを入力して実行します。

DELETE FROM wp_posts WHERE post_status = 'inherit' AND post_type = 'revision';

wp_posts テーブルから投稿タイプが revision のものを削除する」という命令です。これでリビジョンデータが全て削除されます。

以下のコードでテーブルにどのくらいリビジョンがあるかを確認することができます。データ量が多ければ削除する、必要なリビジョンが含まれていないかといった確認に使えます。

SELECT * FROM wp_posts WHERE post_status = 'inherit' AND post_type = 'revision';

※「wp_」の部分はサイト構築時に変更している場合もあります。その場合サイトで使用しているテーブル接頭辞に変更してください。

参考 : 【WP】投稿ステータスの「inherit(継承)」ってなに? – wp-note

必要な分だけのリビジョンを設定しておく

リビジョン機能の有無・保存数は人によってまちまちだと思います。

私はほとんど使用しないのでこのサイトはリビジョン機能自体OFFにしています。特に問題が起こったこともありませんが、時々リビジョンがあったらよかったな…と思うことは正直あります。

個人で運用するサイトは要不要は自分で決めていいと思いますが、複数人で記事の投稿・編集を行うならあった方がいいと思います。
何人かで同じ記事をリライトする場合は特に、誰が何を変更したかわかるようにしておく、指示通りに変更されているかを確認する、などリビジョンが役に立つ場面が一人の時より多いと思います。

完全に無くしてしまわない方がメリットが大きい場合もあります。記事の書き方やサイトの運用方法よってリビジョンの設定を決めていきましょう。

カテゴリー : WordPress

TOPへ