今回は、WordPressにデフォルトで備わっている、下書き保存機能「リビジョン」について少し詳しく説明していきます。
知っている人には物足りない記事になると思いますが、ぜひお付き合いくださいね。


WordPressのリビジョン機能とは?
知っているようで、実はあまりよく分かっていないWordPressの機能である「リビジョン」について、まずはWordPress Codexから引用させてもらいしょう。
WordPress のリビジョンシステムは、保存された下書きまたは公開済み投稿それぞれの更新記録を保存します。
リビジョンシステムではスライダーをドラッグするか、「前へ」「次へ」のボタンをクリックすることで、各リビジョンでの変更箇所を参照できます。
各リビジョンで追加・保持・削除された内容といった変更箇所が表示されます。
追加や削除された行はハイライトされ、各文字レベルの変更はさらにハイライトされます。
「このリビジョンを復元」ボタンを押すことで、そのリビジョンへ復元されます。引用元:WordPress Codex
簡単に説明すると、例えばWordPressで新規投稿(固定ページ含む)で記事を書いた時に、キリのいい場面で「下書き保存」をすると思います。
するとその時にデータベースの中に、下書き保存する前のデータ(まだ何も書いていない状態)と下書き保存した時のデータの2つがまず保存されます。

その後、投稿の編集を進めてまた下書き保存をします。
そうすると、データベースの中には最初の何も書いていない状態のデータが1つ、1回目の下書き保存のデータが1つ、2回目の下書き保存のデータが1つと、合計3つのリビジョンが保存されていることになります。
このデータは、投稿編集画面のリビジョン数の右にある「表示」をクリックすると見ることができ、任意のリビジョンデータを復元することができます。
リビジョン復元や比較の方法
次はリビジョン機能にある、データ復元とデータ比較の方法を見ていきます。
リビジョンの復元
リビジョンの復元方法は簡単です。
先ほども書いた投稿編集画面、リビジョン数の横にある「表示」をクリックして復元画面を表示します。
するとリビジョン表示画面に移りますので、中央の赤枠にあるスライダーのハンドルをスライドさせるか、「前へ」「次へ」ボタンをクリックして任意のリビジョンを表示させます。
リビジョンデータの内容を確認して、「このリビジョンを復元」をクリックして復元完了です。
または、投稿編集画面のツールバーに「戻る」「進む」ボタンがある場合は、それを使って任意のリビジョンデータに復元することもできます。
「戻る」「進む」ボタンの追加は「TinyMCE Advanced」というプラグインを使っています。
リビジョンの比較
リビジョンデータの比較もすることができます。
復元画面の右上部にある「2つのリビジョンを比較」にチェックを入れます。
すると、スライダーに2つのハンドルが表示されるので、任意の場所にハンドルをスライドさせて、リビジョンを比較します。
補足
リビジョン数に特に上限はないようで、下書き保存をするたびにリビジョンデータは蓄積していきます。
リビジョンは投稿内容に変更があった場合のみ、リビジョンデータとして保存されます。
なので、いくら下書き保存をクリックしても、データの変更点がない場合はリビジョン数は増えません。
リビジョンが作られるのは、次のタイミングで保存されるようです。
- 下書き保存した時
- 編集中の記事をプレビューした時
- 投稿を公開した時
- 公開した投稿を編集して更新した時
- 投稿をゴミ箱に移動させた時
- 投稿をゴミ箱から戻した時

WordPressのリビジョンと自動保存の違い
よく「リビジョン」と「自動保存」を一緒に考える人がいるのですが、この2つは少し違う機能になります。
WordPressの自動保存機能とは?
WordPressの自動保存機能とは、WordPressにデフォルトで備わっている自動バックアップ機能のことです。
デフォルトでは、60秒に1回の間隔で自動で保存され、その保存データはリビジョンと一緒に保存されます。
自動保存は、すべての投稿ページで有効化しているのですが、すでに公開しているデータを編集しても、「投稿を更新」しない限り勝手に公開ページが変更されることはありません。

2つの機能の違い
2つの保存機能の大きな違いは2つあります。
- リビジョンは「手動」保存に対して、自動保存は文字通り「自動」保存
- リビジョンの保存データは「蓄積」していくに対して、自動保存は「上書き」保存
リビジョンデータは「下書きとして保存」をするたびに、どんどんデータが増えていくのに対して、自動保存は1つの保存データに上書きされるので、保存データは1つ以上は増えません。

リビジョン機能のメリット・デメリット
それでは、WordPressデフォルト機能「リビジョン」のメリット・デメリットを見ていきましょう。
- 間違って削除しても復元できる
- 過去のデータと比較検討ができる
- 固定ページも対象
全てのリビジョンデータが保存されているので、どの段階のリビジョンデータを復元することができるのが最大のメリットでしょう。

- データ蓄積によるデータベースの負荷
- 簡単にリビジョンを削除できない
データベースの負荷による読み込み時間の増加は、サイト表示速度の低下に繋がります。
これはSEO的に大問題です。

リビジョンの削除方法
リビジョンデータを削除する方法は2通りあります。
直接データベースにアクセスして、post_typeに入っているリビジョンデータを削除する方法と、プラグインをインストールして削除する方法です。
前者のデータベースにアクセスして削除する方法は、ある程度の知識がないとやるべきではありません。
正直、僕もデータベースをいじるのは怖いので、プラグインを使って削除する方法をオススメします。

リビジョンを削除するプラグイン
公式サイトであるWordPress.orgで「revision」と検索すると、たくさんのプラグインが出てきます。
その中でも、評判の良いプラグインを集めてみました。
WP-Optimize
「WP-Optimize」はデータベースの自動クリーンナップと最適化ができるプラグインです。
データベースの中に溜まっていった不要なデータを自動で除去し、データベースを最適化して軽量化ができるプラグインです。
⇒⇒【WordPress】プラグインでデータベースの最適化「WP-Optimize」
Optimize Database after Deleting Revison
ダウンロードはこちらから⇒Optimize Database after Deleting Revisions
「Optimize Database after Deleting Revisions」はリビジョンの削除とデータベースの最適化のプラグインです。
Simple Revisions Delete
ダウンロードはこちらから⇒Simple Revisions Delete
こちらのプラグインは、リビジョンの削除に特化したプラグインになります。
しかも一括削除ではなく、投稿一覧から削除したい投稿を選択して削除するので、一括での削除に不安がある人には最適なプラグインでしょう。

Better Delete Revision
ダウンロードはこちらから⇒Better Delete Revision
このプラグインは、リビジョンの一括削除とデータベースの最適化を行うプラグインになります。
最終更新が2018年8月現在、4年前となっているので注意は必要ですが、公式サイトの評価が高めだったので掲載しました。

⇒⇒【WordPress】プラグインで引越しもバックアップも超簡単「All-in-One WP Migration」
リビジョン数に制限を付ける方法
定期的にリビジョンを削除して最適化を図るのも良いのですが、そもそもリビジョンってそんなに必要ですか?
個人的には多くても10個くらいあれば十分かなと思っています。(それでも多いかな)
ということで、リビジョン機能を制限する設定方法を見ていきましょう。
プラグインなしでリビジョン数に制限を付ける方法(非推奨)
プラグインを使わずにリビジョン数に制限を付けることもできるので、プラグインを極力増やしたくない人向けの方法です。
リビジョン機能自体を無効化する
リビジョン自体必要ないという人は、この方法を試してみてください。
リビジョン機能を無効化するには、WordPress内の「wp-config.php」を編集します。
今回はエックスサーバーでの「wp-config.php」編集方法です。
まずはエックスサーバーのファイルマネージャにログインします。
ファイル一覧画面に移りますので、編集したいドメインをクリックします。
「public_html」をクリックします。
真ん中くらいに「wp-config.php」ファイルがあるので、これをクリックすると自動でダウンロードされます。
Windowsのメモ帳以外のテキストエディターで、ダウンロードした「wp-config.php」ファイルを開きます。
開いたファイルの1番下にある
require_once(ABSPATH . ‘wp-settings.php’);
という記述の手前に次のコードを追加します。
define(‘WP_POST_REVISIONS’, false);
コードを追加したら、上書き保存をしてエックスサーバーにアップロードして完了です。
プラグインを使う使わないにかかわらず、リビジョン機能を停止させることはおすすめできません。
リビジョン数を制限する
プラグインなしでリビジョン数を制限するには、同じように「wp-config.php」ファイルに次のコードを追加します。
追加する場所は最終行の
require_once(ABSPATH . ‘wp-settings.php’);
という記述の手前に追加します。
define(‘WP_POST_REVISIONS’,上限数);
「上限数」と書かれた場所にリビジョンの最大保存数を入力します。
保存数を10個にしたい場合は、
define(‘WP_POST_REVISIONS’,10);
とこんな感じですね。

補足
エックスサーバーで「wp-config.php」を編集した際に必ずやるべきことがあります。
それは、「wp-config.php」のパーミッションを「書き込み不可」にすることです。
「wp-config.php」を編集するにはパーミッションを「600(読み書き可能)」にして編集しますが、編集したファイルをアップロードしたままの状態にすると、不正ログインなどで悪意のある誰かに侵入されるとサイト乗っ取りの被害に会う可能性があります。
なのでファイルをアップロードしたあとは、必ずパーミッションを「400(読み込み可能・書き込み不可)」にしておいてくださいね。
プラグインを使ってリビジョン数に制限を付ける方法(推奨)
次はプラグインを使って簡単にリビジョン数に制限を付ける方法です。
プラグインを増やすことになりますが、データベースを直接編集するのが怖い人向けの方法です。
リビジョン数に制限を付けるリビジョン管理プラグインにはいくつかあるのですが、有名なプラグインをいくつか紹介します。
Revision Control
このプラグインは、リビジョン数の最大値を設定でき、リビジョン機能を無効化することもできる優れたプラグインです。
日本語にも対応しているので、使いやすさでは1番だと個人的には思っています。
⇒⇒【WordPress】プラグインでリビジョン保存数を設定「Revision Control」
WP Total hacks
このプラグインはリビジョン管理機能だけではなく、functions.phpなどに関する管理を可能にしたプラグインです。
なかなか優秀なプラグインなのですが、最終更新が2018年8月現在で2年前となっているので注意が必要です。

WordPressのリビジョン機能のまとめ
いかがでしたか?
今回はWordPressのリビジョン機能についてお話ししました。
リビジョン機能は、万が一の際に役立つ機能ですが、デフォルトの状態のままだとデータベースを圧迫してしまいかねない機能です。
定期的にデータベースを最適化して、リビジョン機能に制限を付けておくことをおすすめします。

