- 実践 WordPress ホーム
- 投稿の編集
WordPress の投稿のリビジョンに回数制限を設定する方法
WordPress の投稿リビジョンの保存件数に回数制限(上限)を設定する方法を説明します。
デフォルトの設定
WordPress のデフォルトの設定ではリビジョンの回数は無制限となっています 。 そのため、固定ページや投稿を何度も繰り返し編集していると、リビジョンデータによってデータベースのサイズが肥大化することがあります。
リビジョンの回数制限の設定方法
リビジョンの数を制限するためには設定ファイル wp-config.php
の中で定数 WP_POST_REVISIONS
をセットすれば OK です。
特定の回数にする
リビジョンの数を制限したい場合は WP_POST_REVISIONS
に数値をセットします。
wp-config.php
:
リビジョンを無効にする
リビジョンを完全に無効にしたい場合は WP_POST_REVISIONS
に 0
または false
をセットします。
wp-config.php
:
投稿タイプごとに異なる回数にする
WP_POST_REVISIONS
を使った方法ではすべての投稿タイプに共通の設定を行うことになります。
投稿タイプによって異なる回数を設定したい場合はフィルタフック wp_revisions_to_keep
を使います。
add_filter( 'wp_revisions_to_keep', function ( $num, $post ) {
switch ( $post->post_type ) {
case 'page':
// 無制限:
return -1;
case 'post':
// 5 つ:
return 5;
case 'custom_post_type':
// 2 つ:
return 2;
default:
return $num;
}
}, 10, 2 );
リビジョンの削除方法
リビジョンの数を制限する代わりに、既存のリビジョンをまとめて削除することもできます。 いくつかの方法があります。
WP-CLI を使う方法
WordPress のコマンドラインツール WP-CLI を使う方法は次のとおりです。
wp post list
は投稿の一覧を出力するコマンドです。
オプション --post_type='revision'
--format=ids
を使うと、リビジョンの id だけをスペース区切りで返すことができます。
wp post delete
は複数の投稿を一括でゴミ箱に移動できるコマンドです。
引数に投稿の ID を受け付けます。
通常リビジョンはゴミ箱に入らないのでリビジョンに対して wp post delete
は使えませんが、 --force
をつけることでリビジョンも削除できます。
その場合、ゴミ箱を介さずにデータが物理削除されてしまうため一度削除したリビジョンデータは元に戻せません。
Note
このコマンドは少しでも間違うと重大なデータロスになる可能性があるため、コマンドの実行前には必ずサイト全体のバックアップを取ってから作業を行うようにしてください。
プラグインを使う方法
リビジョン削除機能を提供するプラグインを使う方法もあります。 そのようなプラグインはたくさんありますが、例えば次のプラグインなどが有名でよく使われています。
WP-Optimize
Advanced Database Cleaner
Advanced Database Cleaner – WordPress プラグイン | WordPress.org
WP-Sweep
WordPress.org ドキュメンテーション・リファレンス
- Revisions – Documentation – WordPress.org
wp_revisions_to_keep
– Hook | Developer.WordPress.orgwp_revisions_to_keep()
– Function | Developer.WordPress.org