リビジョン機能と自動保存機能をカスタマイズする

WordPressの投稿画面で記事を書いていると、どんどんと増えていくものがあります。

それは「リビジョン」。

リビジョン

リビジョンはWordPressが備えている「記事の更新履歴の保存機能」の事です。

例えば記事を書いて一旦「下書きとして保存」をするとします。

するとリビジョンが増えます。

そして同じ記事に画像や文章を追加して再び「下書きとして保存」をすると、記事に変更が加わっているので更にリビジョンが増えます。

このように記事を更新して保存するたびにリビジョンが履歴を保存してくれます。

リビジョンがあることで

ゆんつ
やっぱり更新前の記事に戻したいな

と思った時に、簡単に更新前の記事に戻すことが出来るのです。

また、リビジョンはプレビューを見ても増加します。

長い文章を書いていると「下書きとして保存」や「プレビュー」を何度も使うのでリビジョンの数が30以上になることも珍しくありません。

リビジョンが多すぎることのデメリット

リビジョンがあると更新前の記事にいつでも戻れるというメリットもあるのですが、リビジョンが多すぎることでのデメリットもあるのです。

WEBサイトが重くなる

リビジョンによる履歴の保存は、差分(変更した部分だけを保存)でなく、記事が丸ごと保存されます。

つまりリビジョンの数が多くなればなるほど、似たような内容のバックアップデータでデータベースが大きくなっていくのです。

それが結果的にWEBサイトの重さに繋がってしまいます。

リビジョンをカスタマイズする2つの方法

リビジョンを削除したり、リビジョンの数を自分で設定するには2つの方法があります。

1つはプラグインを利用する方法。

もう1つはデータベースやPHPファイルを編集する方法です。

プラグインを利用する方法

データベースやPHPファイルの編集に 慣れていない方は、プラグインを利用する方法が手軽で安全、かつ、確実だと思います。

ゆんつ
安全第一!

リビジョンを消す

「Better Delete Revision」といプラグインをインストールして有効化します。

「Better Delete Revision」を検索

管理画面から「ツール」→「Better Delete Revision」をクリック。

「ツール」から「Better Delete Revision」をクリック

「Better Delete Revision Manager」という画面になります。

Better Delete Revision Manager

2つボタンがあり、左側の「Check Revision Posts」がリビジョンの削除のボタンで、右側の「Optimize WordPress Database」がデータベースの最適化のボタンです。

You have 798 posts.
Since you started using Better Delete Revision, 1561 redundant post revisions have been removed!

というメッセージがありますが、これは「現在798個記事あります。Better Delete Revisionを使い始めてから1561のリビジョンが削除されました」という意味です。

リビジョンを削除するので「Check Revision Posts」ボタンをクリックします。

すると、現在のリビジョンが一覧で表示されます。

Better Delete Revision Manager

これらのリビジョンを全て消して良い場合は左側の「Yes, I would like to delete them! (A Total Of xxx) 」ボタンをクリック( A Total Of xxx のxxxは現在のリビジョン数で、それぞれの環境で異なります。)

すると、この時点で保有していたリビジョンが全て消去されます。

リビジョンの消去

これでリビジョンの消去は完了です。

ちなみに「Check Revision Posts」ボタンではなく「Optimize WordPress Database」ボタンをクリックすると、このようにデータベースの一覧が表示されます。

Optimize WordPress Database

この画面で注目するのは各項目の右側にあるStatusの部分です。

Status

全ての項目で、この部分が緑でOKになっていれば最適化をする必要はありません。

赤くなっていたら「Optimize WordPress Database」ボタンをクリックして最適化しましょう。

リビジョンの数を制限する、またはリビジョンを残さないようにする

これには「リビジョンコントロール」というプラグインを利用します。

プラグインの新規追加画面の検索欄に「Revision Control」と入力して検索を行い、リビジョンコントロールを見つけてインストールして有効化します。

Revision Control

プラグインを有効化したら、管理画面から「設定」→「リビジョン」をクリック。

「設定」から「リビジョン」をクリック

「リビジョンコントロール設定」の画面になります。

リビジョンコントロール設定

ここで、投稿、固定ページ、カスタムCSSのリビジョン数を設定することが出来ます。

どの項目も、デフォルトでのリビジョン設定は「無制限」。

つまり何個でもリビジョンを残す設定になっています。

これを変更してリビジョンの数を制限します。

プルダウンメニューをクリックするとリビジョンを残す数を選択することが出来ます。

リビジョンコントロール設定

各項目について残したいリビジョン数を選んだら「変更を保存」ボタンをクリックして設定を保存します。

たとえば「投稿リビジョンを保存しない」を選択すると、投稿ページや固定ページにあったリビジョンの項目は無くなります。

リビジョンの項目が無い

これでプラグインによるリビジョンの削除と、リビジョン件数の調整は完了です。

リビジョン範囲で任意の数だけリビジョンを残す。

プルダウンメニューに好みの保存数が存在しない場合は、リビジョン範囲を利用しましょう。

リビジョン範囲

リビジョン範囲で設定している数字が、プルダウンメニューに保存数として表示されます。

たとえば初期状態のリビジョン範囲は、2..5,10,20,50,100となっています。(..というのは~と同じで、2から5までの数字を全て含みます。)

よってプルダウンメニューに表示されるリビジョンの最大保存数は2,3,4,5,10,20,50,100となっています。

デフォルトのリビジョン設定

これをカスタマイズして、15を追加したい場合は、リビジョンメニューにコンマ区切りで数字を追加します。

2..5,10,15,20,50,100

数値を入力したら忘れずに一度保存します。

ゆんつ
一旦保存しないとプルダウンメニューに表示されません

保存後にプルダウンメニューをクリックすると

リビジョン最大保存数

追加した数字が反映されます。

連番にしたい場合は開始の数字から終了の番号までを..(コンマ2つ)でつなぎます。

たとえば

5,10..20,50,100

という風にすると

5,10から20まで連番、50,100という最大保存件数になります。

リビジョン最大保存数

プラグインは使わずデータベースやPHPファイルを編集する

データベースやPHPファイルの編集は、1つ間違えるとサイトが表示されなくるといったようなトラブルに見舞われる可能性があります。

データベースやPHPの編集に自信がない場合は、プラグインを利用した方が安全・安心です。

もしPHPファイルやデータベースの編集をする場合は事前にバックアップを取ったうえで、自己責任でやってください。

リビジョンの削除

リビジョンの削除はデータベースを編集します。

僕が利用しているサーバーはエックスサーバーなので、エックスサーバーでの方法について説明します。

エックスサーバーにログインし「phpmyadmin」をクリック。

phpmyadmin

データベース名とパスワードの入力を求められるので、入力してログインします。

※データベース名をパスワードを忘れてしまった場合、wp-config.phpの中に データベース名をパスワードが記載されているので、そちらで確認します。

リビジョンのデータはwp_postsというテーブルにあります。

phpmyadmin

post_statusがinheritで、かつ、post_typeがrevisionに該当するものがリビジョンに該当します。

post_statusがinherit
post_typeがrevision

よって、この条件にあてはまるものだけをSQL文を使って削除します。

実行するSQL文は

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

です

SQL文の入力

SQLタブを選択してコードを入力し、「実行」ボタンをクリックするとリビジョンが削除されます。

リビジョンの削除

投稿記事を確認すると

リビジョンが無くなっています。

削除前と削除後

これでデータベースの編集による、リビジョンの削除は完了です。

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

WordPressをインストールしたフォルダに存在する「wp-config.php」というファイルを編集します。

wp-config.php

コードエディタでファイルを開きます。

ファイルを開いたら

/** Sets up WordPress vars and included files. */
 require_once(ABSPATH . 'wp-settings.php');

という箇所を探します。

ゆんつ
末尾あたりにあると思います。
wp-config.php

発見したら、そのコードより前に以下の状況にあわせてコードを挿入します。

リビジョンの数を制限したい場合

第2引数にリビジョンの上限数を入力します。

define('WP_POST_REVISIONS', リビジョンの上限数);

例えばリビジョンの保存件数を5件にしたい場合

define('WP_POST_REVISIONS', 5);
リビジョンの保存件数の変更

これによりリビジョンは5件が上限になります(直近の5件が保存される)

リビジョンを無効にする場合

リビジョンが不要な場合は以下のコードになります。

define('WP_POST_REVISIONS', false);

これによりリビジョンが無効となり、リビジョンという項目自体が表示されなくなります。

以上が「wp-config.php」の編集によるリビジョン数の設定方法です。

自動保存について

リビジョンとは少し違いますが、WordPressには自動保存機能という機能もあります。

自動保存機能はその名の通り、記事の作成中に自動で下書きの保存を行ってくれる機能でGurtenbergの場合は初期状態では60秒間隔で自動保存が行われます(直前の保存状態から更新が無い場合は自動保存はされません)。

この自動保存はリビジョンとは違い、保存のたびに保存データが1つづつ残る仕組みではなく、1つの下書きデータを自動保存のたびに上書きする仕組みになっています。

ですので自動保存機能が働くたびにリビジョンの数が増えるということもありませんし、データベースを巨大にしてWEBサイトを遅くするようなものでもありません。

記事の作成中に何らかの理由でパソコンが落ちてしまった時などのトラブルから記事を守ってくれる頼もしい機能です。

この自動保存の秒数は変更することも出来ます。

自動保存の秒数の変更はwp-config.phpを編集することにより行います。

記述する場所はリビジョンの数を設定したとき同様

/** Sets up WordPress vars and included files. */
 require_once(ABSPATH . 'wp-settings.php');

よりも前です

自動保存の秒数を変更する

以下のコードの第2引数に自動保存を行う間隔を入力します。

define('AUTOSAVE_INTERVAL', 自動保存をする間隔);

自動保存をする間隔の単位はです。

例えば5分おきに保存したい場合は5分*60秒=300なので300と入力します。

define('AUTOSAVE_INTERVAL', 300);

これにより自動保存は60秒間隔→5分間隔になります。

使いやすいように設定にしてみてください

以上がリビジョンや自動保存機能の設定方法でした。

自動保存は初期状態のままで良いと思いますが、リビジョンは初期状態では無制限に保存されてしまうので、プラグインを使うなどして数を制限した方がサイトの表示速度のためにも良いと思います。

ちなみに僕はリビジョンは一切残さない設定で、自動保存機能の間隔は初期状態のままにしてあります。

ご自身の都合に合うように設定してみてください。

ゆんつ
それでは、またー