WordPressのリビジョン機能とは、投稿した記事の内容を前の状態に戻す事が出来る便利な機能です。
ですが、デフォルトでは保存されるリビジョンの数が制限されていませんので、保存する度にリビジョンが増え続けサーバーへ負担がかかってしまう場合があります。
今回は、リビジョン機能の制限や停止する方法を解説していきます。
※今回紹介する方法は、記述を間違ってしまうと画面が白くなり何も表示されなかったり、エラーが出てしまう場合がありますのでバックアップを必ず取るようにしてください。
なぜリビジョンの制限が必要なのか
冒頭でも紹介したように、リビジョンとは変更する記事の変更前の状態を保存する事で、以前の状態に戻す事が出来る機能です。
とても便利な機能にはなるのですが、保存する度に保存前の内容が保存される為、頻繁に記事の内容を変更する場合や、記事の投稿がある場合などにはとんでもない量のリビジョンが保存される事になります。
これによって、リビジョンの数が多い程データベースが肥大化する為、サーバーに負荷がかかりサイトの表示が遅くなったりしていきます。
これを防ぐ為に、リビジョン機能の停止や保存数の制限などが必要になってきます。
リビジョンの制限をするのと機能を停止するのとどちらがいいか
リビジョン機能を制限するか停止するかは使い方によって変わってきます。
頻繁に記事を更新する場合、変更前の記事があれば元に戻す事が出来るのでとても便利ですが、リビジョン機能をそもそも使わない場合は停止してもかまわないと思っています。
実務上でお客様がリビジョン機能を使いたいと言う場合は、保存数を制限するか無制限のままにしておくか相談の上決定しますが、特に何も要望が無い場合は、記事の更新頻度によりますが5~10程度に制限する事も多いです。
結局は、使用するユーザーによってという所がありますので、相談の上決定するのが望ましいかと思います。
wp-config.phpで設定する方法
続いて、リビジョンの制限や停止する方法です。まずはwp-config.phpで設定する方法を解説していきます。
wp-config.phpの最後にある以下のコードの上に記述するようにしてください。
/* ↓以下のコードの上に記述してください */
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
リビジョンを停止する
リビジョン機能を使用しない場合は以下のコードを記述します。
define('WP_POST_REVISIONS', false);
上記のコードの記述でリビジョンは保存されなくなりますが、これまでに保存されたリビジョンは削除されません。
保存されたリビジョンを削除する場合は「既存のリビジョンの削除について」の項目をご覧ください。
リビジョンの保存数を設定する
リビジョンの保存数を制限する場合は以下のコードを記述してください。
define('WP_POST_REVISIONS', 5);
最後の「5」となっている数字の部分を希望の数値に変更してください。
今回の場合は5個まで保存されて、古い順に削除されて上書きとなります。
functions.phpで設定する方法
次に、functions.phpで設定する方法です。
リビジョンを停止・保存数を変更する
リビジョン機能の停止や保存数の変更は以下のコードを記述します。
add_filter('wp_revisions_to_keep', function($num, $post) {
return 5;
}, 10, 2);
「return 5」の数字の部分を希望の保存数に変更してください。数字を0にすると保存されません。
上記の場合は5個まで保存されて、古い順に削除されて上書きとなります。
既存のリビジョンの削除について
リビジョン機能の停止をした場合、既に保存されているリビジョンは削除されません。
(※保存数を変更した後に記事を保存した場合は設定した数値以外のリビジョンは削除されます)
残ったリビジョンを削除する場合は自身でデータベース上でSQLコマンドで削除するか、プラグインにて削除が必要です。SQLで削除するのは難易度が高いものになりますので、プラグインでの削除がオススメです。
当ブログでは未確認なのですが「WP-Optimize」というプラグインなど、いくつかリビジョンを削除出来るプラグインがあるみたいですので試してみてもいいかと思います。
自動保存とリビジョンの違いについて
変更前の記事を保存するリビジョン機能の他に、Wordpressには「自動保存」という機能もあります。
これは、名前の通り自動的に記事を保存する機能になり、不意にブラウザを閉じてしまった場合や、ブラウザがクラッシュしてしまった際に役に立つ機能です。
リビジョン機能とよく混同されてしまう機能ですので、機能の違いをよく理解しておいてください。
さいごに
いかがでしたでしょうか。
今回は、リビジョン機能の保存数の制限や停止する方法を解説しました。
リビジョンの停止や制限をする事で、サイトの表示速度にも影響してきますので、内容を理解し適切に設定するようにしてください。