Wordpressでは記事のバックアップ機能にリビジョンと自動保存があります。
どちらの機能もいざという時に記事内容を復元できる機能ですが、2者とも記事のバックアップ機能なのでその違いについてあまり考えないかもしれません。
使い方は似ているけれど結構違う!リビジョンと自動保存の違いについてです。
リビジョンと自動保存(下書き)の違い
言葉がややこしいのですが、この記事中の「下書き」とはWordpressで「自動保存」と呼ばれているものですので適宜置き換えてお読みいただければと思います。
自動で保存される「リビジョン」と「自動保存」は使う側には大差ないように感じますが、この両者には大きな違いがあります。
リビジョンは新規作成なのに対し、自動保存は上書き保存なのです。
リビジョンと下書きがデーターベースを肥大化させると思われがちですが、下書きの保存に関してはデータベースにはそんなに影響がありません。
では両者の違いを詳しく見てみましょう。
リビジョンとは?
殆どのテーマで投稿ページの下にリビジョンが一覧表示されていると思います。
この一覧はいわば記事のバックアップですので、戻したい時間の投稿をクリックすれば編集箇所がハイライト表示されます。
機能はこれくらいです。
便利なのですが、リビジョンの保存はデメリットの方が大きいかもしれません。
リビジョンはページの「公開」や「更新」をクリックしたときに生成されます。
データベースにリビジョン用の記事がその都度作成されるので記事IDが増えます。
ポイント
リビジョンの保存はデータベースへの新規保存です。
同じような内容の記事であってもリビジョン生成時には新しいIDを使用してデータベースに保存されるため、データベースが肥大化してしまいます。
使わないリビジョンはデータベースにとってはただのゴミなのです。
なおリビジョンの説明として、Wordpressのサポートページに次のようにあります。
WordPress のリビジョンシステムは、各保存済み下書きまたは公開済み投稿の更新記録を保存します。
説明の上部のみ抜粋。
自動保存(自動下書き)とは?
Wordpressにはリビジョンの他に自動保存という下書きの自動保存機能もあります。
投稿ページで本文を打ち込む枠の下に
「○○に下書きを保存しました。」と出るのが自動保存です。
自動保存はWordpressのデフォルト設定で60秒に1回行われます。
記事に一文字でも変更があった場合、1分後に自動保存されます。
記事IDは増えません。(たぶん...)
リビジョンと何が違うのかというと作業内容をブラウザーに保存している点。
(正確にはブラウザー上ではないかも...)
そして最新の自動保存で過去の自動保存を上書き保存していくという点です。
自動下書きが完了した後、何かしらの原因でページが閉じられてしまった場合に投稿ページに再度アクセスすると画像のようなリンクが出ます。
「バックアップから復元」を押すと自動下書きされた時点の内容に復元できます。
インターネットが途切れてしまったり、ブラウザを閉じてしまったり、ページ遷移してしまったり...そんな時に役立つ機能です。
WordPressのサポートページには次のようにあります。
投稿ごとの自動保存は最大一つまでとなっています。新規自動保存は、以前の自動保存投稿を上書きします。つまり60秒ごとにデータベーステーブルが肥大していくわけではない、ということです。
上部のみ抜粋。
1投稿につき最新バージョンの自動保存(下書き)が最大1つ作成される。
60秒ごとにデータベースに保存していくのではなく、上書き保存なのでデータベースにそんなに影響は無いですよということ。
自動保存がこの書き方なら、リビジョンの多用はデータベースが肥大化していくと言っているようなものなのでは?
リビジョンには自動保存も含まれる
リビジョンが新規保存で、自動保存が上書き保存だということは直接データベースを見なくても、投稿ページの下に表示されているリビジョン一覧を見ると分かります。
リビジョンは更新を押すたびに新しく作られているのに対し、自動保存となっているのは最新バージョン1つのみです。
そしてこの数の合計は5でした。
この時、画面右上のリビジョンも5でしたので自動保存(自動下書き)もリビジョンに含まれているようです。
リビジョンと自動保存の削除について
リビジョンや下書きを削除するには実質プラグインで行うしかなさそうです。
先ほどのサポートページの下にも載っていますが、削除するためのAPI関数はあるけれどUIは用意していないとのこと。
プログラムはあるけど目視操作できる画面は作っていないよ!とのことです。
今後変更される可能性もあるとのことですが、今はまだ実装されていません。
リビジョンや下書きの削除で有名なプラグインは「WP-Optimize」です。↓
削除はプラグインに頼るしかありませんが、リビジョンの保存数や時間を変更したり無効化する方法、自動保存を無効にする方法はあります。↓
まとめ
ポイント
- リビジョンはデータベースへの新規保存
- 自動保存は投稿ごとに1つ作成されるファイルへの上書き保存
- プラグイン無しでの削除は困難
- config.phpやfunctions.phpで無効化&制限は可能
1記事につき1つだけ最新のバックアップが作成される自動保存(自動下書き)はありかなーと思ったのですが、リビジョンは無しですね。
というより両方無効にしても「更新」ボタンを押して記事自体を上書き保存していけばOKなので、当サイトでは両方無効にしました。
とはいえプレビュー表示などでも何かしら使われているらしく、リビジョンも下書きも常に0!とはいかないようです…
いちいちややこしすぎる・w・