1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Wordpressでリビジョン機能を無効化する

Last updated at Posted at 2023-02-09

1. はじめに

1.1. 対象

  • Wordpressでリビジョンを無効化したい人
  • テーマ開発をしている人

1.2. 経緯

  • wp-configで設定するパターンは検索にヒットするものの、functionsで設定するパターンがヒットしなかった
  • プラグインがあるなら、フックでどうにかできるはず...とコアファイルを探したら方法を発見したので、忘備録も兼ねて

2.1. 本題

2.1. functions.phpで設定する

POINT

  1. wp_revisions_to_keep フックでフィルタする
  2. リビジョンの最大保持件数を 戻り値に設定する

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

  1. WP_POST_REVISIONS をdefineする
  2. 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);

3. 参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?