山積するリビジョンを整理する方法

全般

今回は、WordPressの機能のひとつである、「リビジョン」にまつわる問題を解決したい。

溜まったリビジョンを削除し、リビジョンの機能を再設定する方法を紹介する。

また、リビジョンの機能も簡単に紹介しておく。

WordPressのリビジョンとは

WordPressのリビジョンとは、下書きや公開済みの記事の更新を記録しておいて、必要になったときに保存された記事の内容を復元することが出来る機能である。

デフォルトでは60秒毎に自動で保存されるようになっている。

リビジョンの使い方

使い方は簡単で、記事の編集画面の右側サイドバーに「〇件のリビジョン」と書いてある部分があるので、そこを押すだけだ。

この部分をクリックすると、このような画面に変遷する。

上の画像のように、保管されているリビジョンを閲覧することができる。

リビジョンの変更は上部の水平バーをスライドするか、「前へ」「次へ」ボタンで変更することができる。

記事本文の画面は、左側が古く右側が左側のひとつ新しい内容を示している。

また「2つのリビジョンを比較」機能で、もっと古いリビジョンと新しいリビジョンを見比べることも可能だ。

リビジョンの問題点

リビジョンは際限なく溜まり続ける

WordPressのリビジョンの一番の問題点は、際限なく溜まり続けることである

デフォルトでは保管するリビジョンの数に制限はされておらず、少し古い記事や下書きの時点で何度も内容を練り直した記事のリビジョン数が100件や200件を超えていることはざらである。

なぜなら、下書きを保存したり公開済みの記事を更新するたびに、リビジョンも保存されてしまうからだ。

そして、WordPressの仕様上、デフォルトでは60秒間に1回下書きが自動的に保存されるので、それもリビジョンとして保管される

このふたつの要因が組み合わさることによって、あれよあれよという間にリビジョンが積み重なってしまう。

リビジョンはクラシックエディターで表示される

現在のWordPressでは、「Gutenberg Editor」と呼ばれるブロックエディターで記事を書いている人が多いはずだ。

しかし、リビジョンの確認画面では「Classic Editor」モードでしか表示することができない

なので、ブロックエディターで様々なブロックを用いてゴリゴリ書いた記事をリビジョンで見ても、とてもじゃないが分かりづらい。

なので、一度使おうとしてやっぱり使ってない人もいるのではないだろうか?


今回は、そんなリビジョンの仕様をどうにかする方法を解説する。

WordPressのリビジョンを整理する手順

それでは、リビジョンを整理していきたい。

手順としては、プラグインを使用して溜まったリビジョンを削除してから、PHPファイルにアクセスしてリビジョンの仕様を再設定する順番となる。

「WP-Optimize」で溜まったリビジョンをすべて削除する

最初に、溜まりに溜まったリビジョンを一度全部削除して真っさらにしてしまおう。

WordPressを始めたばかりで、まだひとつも記事を書いておらず、リビジョンも存在しない場合はこの部分を飛ばしても構わない。

リビジョンを削除するには、SQLを弄るという手もある。だが、素人がそれをやるのは少々危ないので、WordPressのプラグインを利用しよう。

まず、管理者画面からプラグインの新規追加ページを開き、検索ボックスに「WP-Optimize」と入力しよう。

そしたら、このようなプラグインをすぐ見つけることができるはずだ。

また、WordPress公式が出しているプラグインの紹介ページはこちらになる。

WP-Optimize – Clean, Compress, Cache.」を見つけたら、「今すぐインストール」をクリックしてプラグインをインストールし、その後「有効化」をクリックしてWP-Optimizeの機能を有効にしよう。

有効になったことを確認したら、管理者画面左側に出現したアイコン付きのWP-Optimizeをクリックし、「Database」を選んで、Webサイトのデータベースを最適化する画面を開こう。

上の画像のようにデータベースの最適化を設定する画面に入れただろうか?

そしてその画像のように、最適化の項目リストの上から2段目に「すべての投稿リビジョンをクリーン」という項目があるはずなのでそれを探し、「最適化を実行」ボタンを押してリビジョンをすべて削除しよう。

上の画像のように、下に小さく「0 post revisions deleted」と表示されていたら、既存のリビジョンの全消去は成功だ。

「最適化を実行」ボタンは2回押すことをお勧めする

1回だけでは消去する予定のリビジョン数に変化がないことがあるからだ。

そして、念のためF5キーを押して、WP-OptimizeのDatebaseページを更新してみよう。

このように、「投稿リビジョンが見つかりません」と表示されていることを確認しておこう。

これで、山積みになったリビジョンを削除する方法の解説は終わりになる。

いくらかWebサイトの無駄が消えるはずだ。


なお「WP-Optimize」については、リビジョンの削除が終わってもそのまま使用するのもよいし、Webサイトが重くなるのが嫌だと感じるのなら停止するなり削除するなりしてしまってもいい。

「wp-config.php」を編集してリビジョンを制御する

次は、生成されるリビジョンの数を制限したり、リビジョンの自動保存間隔を延ばしたり、リビジョンを無効化する再設定を行う。

WordPressは「wp-config.php」というファイルにアクセスして、そのファイル内の決められた場所にPHPコードを入力することで、リビジョンの設定をコントロールすることができる。

まずは、FTPソフトかサーバーのファイルマネージャーから「wp-config.php」ファイルを開く。

wp-config.phpファイルは
public_html/あなたのWebサイトのドメイン名/wp-config.php
の階層に位置している。

そして、「wp-config.php」ファイルを開いて中身を閲覧すると、最後の行付近にはこのようなコードが書かれているはずだ。

未編集のwp-config.php
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

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

下のほうにこれを見つけることが出来ただろうか?

今回のカスタマイズで入力するWordPressのリビジョンを制御するPHPコードは、必ず「/** Absolute path to the WordPress directory. */」よりも上に入力する必要がある

新しく追加する制御コードは、「 ‘ABSPATH’」の下に入力しても機能しないからだ。

つまり、今回のカスタマイズで入力するPHPコードはこの部分に追加しなければならない。

wp-config.phpにPHPコードを入力する場所
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wp_';
/*もしくは */
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wpbs_';


この部分にリビジョンを制御するPHPコードを入力する


/* That's all, stop editing! Happy blogging. */
/*もしくは */
/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

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

「$table_prefix」と「/* That’s all, ~. */」の間に入力すると覚えておけば問題は無いだろう

このことに注意しつつ、カスタマイズを行っていこう。

生成されるリビジョンの数を制限する

まずは、生成されるリビジョンの数を制限するカスタマイズを行おう。この設定を行わず、また新しく記事の下書きを書き始めると、際限なくリビジョンが溜まってしまう。

今回は、リビジョンの数を2個に制限したい。5個や10個では多すぎる気がしたからだ。

なぜなら、ひとつの記事で5個のリビジョンを保管することにすると、100記事書いたときは500件のリビジョンが存在していることになる。これはいくら何でも無駄だろう。

それでは、wp-config.phpを開いて、このようなコードを入力しよう。

リビジョンの数を制限するPHPコード
/* revisions limit code */
define('WP_POST_REVISIONS', 2);

このコードを先ほどの部分にコピペすると、ひとつの記事に生成されるリビジョンの数が2個までに制限される。

コード解説
  • ‘WP_POST_REVISIONS’」は、WordPressのリビジョンを制御するプロパティである。
  • 0より大きい数字を入力すると、入力した数字の数だけリビジョンが保持され、古いリビジョンは自動的に破棄される

これでリビジョンの数を制限するコードの解説を終える。

リビジョンの自動保存の間隔を延ばす

次は、自動保存(オートセーブ)の間隔をもっと伸ばしたい。

60秒間、つまり1分おきにリビジョンを保存するのはいくらなんでも頻繁過ぎる気がするからだ。

それでは、自動保存の間隔を60秒から300秒、つまり1分から5分おきに変更するPHPコードを入力しよう。

リビジョンの間隔を変更するPHPコード
/* revisions interval code */
define('AUTOSAVE_INTERVAL', 300 );

こうすることで、自動保存の間隔が300秒に再設定される。

コード解説
  • ‘AUTOSAVE_INTERVAL’」は、文字通りオートセーブのインターバルを設定するプロパティである。
    日本語で訳すると自動保存の間隔と言ったところか。
  • 続く数字で自動保存の間隔を決めることができる。
    単位は秒なので注意しよう

言うまでもないが、絶対に数字の部分を「0」や「1」にしてはならない

超短時間でオートセーブを繰り返すとWebサイトに無用な負荷をかけることになるので絶対にやめよう。

これでリビジョンの自動保存の間隔の再設定は終わりになる。

リビジョンを無効化する

そもそもリビジョンを使ってない……。って人もいるかもしれない。

なので、リビジョンの機能自体を無効化してしまおう。

このコードをwp-config.phpに入力しよう。

リビジョンを無効化するPHPコード
/* revisions invalid code */
define('WP_POST_REVISIONS', false);

こうすることで、リビジョンの機能自体が無効化される。

コード解説
  • リビジョンの数を制限する項目で説明した通り、WordPressのリビジョンを制限するプロパティである「‘WP_POST_REVISIONS’」を使用する。
  • 続いて「false」と入力すると、リビジョンの機能が停止する。

これで、リビジョンの機能を無効化する設定を終える。

「wp-config.php」に入力するPHPコードまとめ

前の章で説明したコードをまとめるとこのようになる。

リビジョンの再設定を行うコードまとめ
/* revisions re set code */
define('WP_POST_REVISIONS', 2);
define('AUTOSAVE_INTERVAL', 300 );
define('WP_POST_REVISIONS', false);

このコードを、「wp-config.php」内の「$table_prefix」と「/* That’s all, ~. */」の間に入力しよう

リビジョンの再設定をまとめたコードの設置場所
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wp_';
/*もしくは */
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix = 'wpbs_';



/* revisions re set code */
define('WP_POST_REVISIONS', 2);
define('AUTOSAVE_INTERVAL', 300 );
define('WP_POST_REVISIONS', false);



/* That's all, stop editing! Happy blogging. */
/*もしくは */
/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

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

こうすることで、保持されるリビジョンの数を2つに、自動保存の間隔を5分に、そしてリビジョンの機能を無効化をまとめて設定できる。

なお、リビジョンの機能を無効化しているのにリビジョンの数を制限するコードも併記しているのは念のためである。

これでリビジョンの再設定についてのカスタマイズの説明は終わりになる。


今回は、リビジョンのカスタマイズについて解説した。

私も何度も下書きを書き直した記事のリビジョンが150件を超えていたこともあり、いい加減に何とかしなければと思っていた。

この記事が役に立てばうれしい。