概要
wp_revisions_to_keep
フィルタは、投稿情報のリビジョン数を取得する際に使用されます。このフィルタを使うことで、特定の投稿タイプに保持するリビジョンの最大数を変更することが可能です。具体的には、以下のような利用シーンで活躍します:
- リビジョンの保存数をカスタマイズしたい場合
- 重要なデータのリビジョンをより多く保持したい場合
- パフォーマンスを向上させるためにリビジョン数を減らしたい場合
- 特定の投稿タイプに対して意思決定プロセスを明確にしたい場合
- 特に長い作業プロセスがあるコンテンツでリビジョン数を柔軟に管理したい場合
- 定期的に行われるメンテナンスに合わせてリビジョン管理を行いたい場合
- 著作物や業務内容が頻繁に変更される場合に適用したい場合
- データベースの最適化を行う際にリビジョン数を管理したい場合
構文
function custom_revisions_to_keep( $num, $post ) {
// カスタムロジック
return $num;
}
add_filter( 'wp_revisions_to_keep', 'custom_revisions_to_keep', 10, 2 );
パラメータ
$num
(int): 現在のリビジョン数$post
(WP_Post): 現在の投稿の WP_Post オブジェクト
戻り値
wp_revisions_to_keep
フィルタは、保持するリビジョンの数を示す整数を戻します。
関連する関数
wp_revisions_to_keep フィルタに関する関数
使用可能なバージョン
このフィルタは、WordPress 3.6 以降で使用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
アクション名 | 使用可能 |
---|---|
mu_plugin_loaded | |
registered_post_type | 〇 |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
-
デフォルトのリビジョン数をカスタマイズする
function custom_revisions_to_keep( $num, $post ) { return 5; // すべての投稿で5つのリビジョンを保持 } add_filter( 'wp_revisions_to_keep', 'custom_revisions_to_keep', 10, 2 );
このコードは、すべての投稿で保持するリビジョン数を5に設定します。
-
特定の投稿タイプに異なるリビジョン数を設定する
function custom_post_type_revisions( $num, $post ) { if ( 'my_custom_post_type' === $post->post_type ) { return 10; // カスタム投稿タイプには10のリビジョンを保持 } return $num; // 他の投稿はデフォルト } add_filter( 'wp_revisions_to_keep', 'custom_post_type_revisions', 10, 2 );
このコードは、特定のカスタム投稿タイプに対して10のリビジョンを保持します。
-
ユーザーの役割に基づいてリビジョン数を変更する
function user_role_based_revisions( $num, $post ) { if ( current_user_can('editor') ) { return 15; // 編集者に対しては15のリビジョンを保持 } return $num; } add_filter( 'wp_revisions_to_keep', 'user_role_based_revisions', 10, 2 );
このコードは、編集者のユーザー役割に基づいてリビジョン数を変更します。
-
特定の条件でリビジョン数を無制限に設定
function unlimited_revisions_conditionally( $num, $post ) { if ( isset( $_GET['unlimited_revisions'] ) ) { return -1; // 無制限にリビジョンを保持 } return $num; } add_filter( 'wp_revisions_to_keep', 'unlimited_revisions_conditionally', 10, 2 );
このコードは、特定のクエリパラメータが存在する場合にリビジョンを無制限に保持します。
-
リビジョン数を減らしてパフォーマンスを向上させる
function reduce_revisions_for_performance( $num, $post ) { return 3; // デフォルトのリビジョン数を3に減らす } add_filter( 'wp_revisions_to_keep', 'reduce_revisions_for_performance', 10, 2 );
このコードは、パフォーマンス向上のためにデフォルトのリビジョン保持数を3に減らします。