1. はじめに
1.1. 対象
- Wordpressでリビジョンを無効化したい人
- テーマ開発をしている人
1.2. 経緯
- wp-configで設定するパターンは検索にヒットするものの、functionsで設定するパターンがヒットしなかった
- プラグインがあるなら、フックでどうにかできるはず...とコアファイルを探したら方法を発見したので、忘備録も兼ねて
2.1. 本題
2.1. functions.phpで設定する
POINT
-
wp_revisions_to_keep
フックでフィルタする - リビジョンの最大保持件数を 戻り値に設定する
2.1.1. あらゆる投稿でリビジョンを保存しない
functions.php
add_filter("wp_revisions_to_keep", "disable_all_revisions");
function disable_all_revisions() {
return 0;
}
2.1.2.特定の条件でだけリビジョンを保存する
functions.php
add_filter("wp_revisions_to_keep", "disable_revisions", 10, 2);
function filter_function_name(int $num, WP_Post $post) {
// 投稿タイプが「hoge」の投稿は最新5件までリビジョンを保存する
if ($post->post_type === "hoge") {
return 5;
}
// それ以外は無効化する
return 0;
}
2.2. wp-config.phpで設定する
POINT
- WP_POST_REVISIONS をdefineする
- wp-setting.php のrequireより前でdefineする
2.2.1. 完全に無効化する場合
wp-config.php
define("WP_POST_REVISIONS", false);
2.2.2. 最大件数を設定する場合
wp-config.php
// 最大3件までに限定する
define("WP_POST_REVISIONS", 3);