• WordPressのリビジョン数はWP_POST_REVISIONSで編集期間に合わせて制限する

WordPressのリビジョン数はWP_POST_REVISIONSで編集期間に合わせて制限する

公開日: 執筆:佐藤

WordPressのリビジョン数を制限するなら、WP_POST_REVISIONSへ正の整数を設定します。数はデータベースの大きさだけで決めず、下書き、確認、公開、公開後の修正という編集の流れから、戻す可能性がある版を残せるように決めます。

この設定は、投稿や固定ページの過去版を残す数を調整するものです。データベースが失われたときにサイトを戻すバックアップとは役割が違います。リビジョンを減らしても、ファイルとデータベースのバックアップは別に必要です。

WP_POST_REVISIONSはtrue、整数、falseで動作が変わる

WP_POST_REVISIONSを設定しなければ、WordPressはtrueを使い、通常のリビジョンを保存します。数を制限する場合は、wp-config.phpでWordPress本体を読み込む行より前へ、正の整数を設定します。

define( 'WP_POST_REVISIONS', 5 );

ここで使う5は書式を示す例です。すべてのサイトに共通する推奨数ではありません。WordPressのwp-config.phpに関する説明も、既定値をtrueとし、整数で投稿または固定ページごとの最大数を指定できると案内しています。

falseを設定すると、通常のリビジョンを新たに保存しません。

define( 'WP_POST_REVISIONS', false );

ただし、リビジョンと自動保存は同じ設定ではありません。falseにしても自動保存の処理まで無効になるわけではありません。また、定数を書き換えた瞬間に、保存済みのリビジョンを一括削除する処理も行われません。

保存数は戻したい編集工程から決める

保存数を決める前に、誰が投稿を変更し、どの段階へ戻す可能性があるかを確認します。一人で短時間に書き終える投稿と、担当者、確認者、承認者が順に直す固定ページでは、必要な履歴が違います。

たとえば、初稿、内容確認後、表記確認後、公開直前、公開後の訂正という五つの節目を区別したいなら、その流れを覆える数から検討します。保存操作の回数が節目より多い場合は、同じ数では足りません。担当者が何度保存するか、確認が何日続くかも含めて決めます。

保存数を小さくするほど、古い内容へ戻れる期間は短くなります。一方で、制限しない場合は投稿の更新回数に応じてリビジョンが増えます。先に決めるべきなのは、何件減らせるかではなく、どの編集段階まで戻せれば運用を続けられるかです。

古いリビジョンは次の保存時に整理される

WordPress 3.5.1のリビジョン保存処理は、新しい通常リビジョンを作ったあと、その投稿に属するリビジョンを古い順に調べます。指定数を超えた分があれば、古い通常リビジョンから削除します。設定を追加しただけでは整理せず、次に通常リビジョンが保存されたときに処理します。

削除対象は、その投稿に属する古いリビジョンです。親の投稿や固定ページそのものを削除する処理ではありません。標準で版として保存するのは、タイトル、本文、抜粋です。カテゴリー、タグ、アイキャッチ画像を含む投稿全体のバックアップにはなりません。

自動保存は、余剰リビジョンを削除する処理から除外されます。そのため、データベース内にあるrevision形式の行数が、WP_POST_REVISIONSへ設定した数と必ず一致するとは限りません。設定値はデータベース上の行数を厳密にそろえる数ではなく、通常リビジョンの保存範囲を決める値として扱います。

リビジョンの制限とバックアップを混同しない

リビジョンは、元の投稿と同じデータベース内に保存されます。データベースを失った場合や、投稿そのものを完全に削除した場合に備える仕組みではありません。テーマ、プラグイン、アップロードした画像、wp-config.phpも保存しません。

したがって、WP_POST_REVISIONSの変更をバックアップ容量の代替策にしません。設定を変える前にデータベースを保存し、その保存物から戻す手順と担当を確認します。古いリビジョンを減らす作業と、サイト全体を復旧できる状態にする作業を分けます。

投稿者が内容を戻す責任と、サーバー管理者がデータベースを復元する責任も同じではありません。制作会社へ設定変更を頼む場合は、設定値、変更日、対象サイト、バックアップの保管先、元へ戻す人を引継ぎ記録へ残します。

非公開の投稿で保存と削除を確認する

最初に、現在のwp-config.phpとデータベースを保存します。次に、現在の編集工程から保存数を決め、同じ定数がすでに定義されていないか確認してから、一箇所だけ変更します。

変更後は、公開中の記事を確認のために何度も書き換えず、非公開の確認用投稿を使います。指定数を超えるまで保存し、通常リビジョンが作られること、古い版が次の保存時に整理されること、自動保存が別に扱われることを確認します。

マルチサイトでは、一つの設定が複数サイトの編集履歴へ影響します。一つのサイトだけを見て数を決めず、各サイトの編集者と確認期間を調べます。プラグインがリビジョンへ保存する項目を増やしている場合も、標準の三項目だけを前提にせず、確認用投稿で実際の差分を見ます。

最初の一手は、falseを貼り付けることではありません。戻したい編集段階を一つずつ書き出し、その範囲を残せる数を決めてください。

戻る