概要説明
WordPress のリビジョン(記事の保存のたびに残る前の版)の数を wp-config.php の WP_POST_REVISIONS で減らす・止める方法。投稿タイプごとに数を変えるコード、自動保存の間隔(AUTOSAVE_INTERVAL)、止める前の注意も。
リビジョンの数を決める(wp-config.php)
WordPress は、記事を保存するたびに、それまでの版を「リビジョン」として残します。何も設定しないと数に上限がなく、データベースが少しずつ大きくなります。wp-config.php で、残す数を決められます。
wp-config.php
// 「That's all, stop editing!」の行より上に書く define( 'WP_POST_REVISIONS', 2 ); // 1 つの記事につき 2 件まで残す
| 書く値 | 動き |
|---|---|
| 数(例:2) | 1 つの記事につき、その数まで残す。古いものから消える |
| false または 0 | リビジョンを残さない |
| 書かない・true・-1 | 上限なし(WordPress の初め) |
すでに残っているリビジョンは、その記事を次に保存したときに、決めた数まで減ります(設定しただけでは、まとめては消えません)。
リビジョンを残さない(止める前に注意)
wp-config.php
define( 'WP_POST_REVISIONS', false ); // リビジョンを残さない
- 止まるのはリビジョンだけです。書いている途中の自動保存は止まりません(記事ごと・人ごとに 1 件の自動保存は残ります)。
- 前の版に戻せなくなります。うっかり消した文章も、リビジョンからは戻せません。
- TCD のテーマのページビルダーは、保存のたびにリビジョンにも中身を残しています。リビジョンを止めると、ページビルダーの中身が消えたときに戻す手がなくなります。
止めるより、2〜5 件ほど残すのがおすすめです。
投稿タイプごとに数を変える・自動保存の間隔
固定ページだけ多く残したいときなどは、wp_revisions_to_keep フィルターで、投稿タイプごとに数を変えられます。wp-config.php の設定より、こちらが優先されます。
functions.php
/*----------------------------------------------------
投稿タイプごとに、残すリビジョンの数を変える
----------------------------------------------------*/
if ( ! function_exists( 'fs_revisions_to_keep' ) ) {
function fs_revisions_to_keep( $num, $post ) {
if ( 'page' === $post->post_type ) {
return 10; // 固定ページは 10 件残す
}
return $num; // ほかは wp-config.php の設定のまま
}
add_filter( 'wp_revisions_to_keep', 'fs_revisions_to_keep', 10, 2 );
}
書いている途中の自動保存は、初めは 60 秒ごとです。間隔を変えるときは、wp-config.php に書きます。
wp-config.php
define( 'AUTOSAVE_INTERVAL', 300 ); // 自動保存を 5 分(300 秒)ごとにする
確かめた結果
作業環境(WordPress 7.1・wp-config.php の WP_POST_REVISIONS は 2)で、試しの記事を作って 5 回保存しました(試しの記事はあとで消しました)。
| 試したこと | 結果 |
|---|---|
| 投稿を 5 回保存 | リビジョンは 2 件だけ残った |
| 上のフィルターで固定ページだけ 3 件にして、固定ページを 5 回保存 | 固定ページは 3 件、投稿は 2 件のまま |
| AUTOSAVE_INTERVAL を書かないとき | 60(秒) |


