wp_suspend_cache_invalidation()


WordPress関数wp_suspend_cache_invalidation()は、キャッシュの無効化を一時的に停止するために使用されます。これにより、大量のデータ更新時にキャッシュ処理の負担を軽減できます。

シンタックス

wp_suspend_cache_invalidation( bool $suspend );
  • $suspend (bool) — キャッシュの無効化を停止するかどうかを指定します。trueを設定すると無効化を停止し、falseを設定すると再開します。

注意事項

  • この関数は大量のデータ更新が行われる場合にのみ使用することを推奨します。
  • 適切なタイミングでキャッシュ無効化を再開しないと、データの整合性に問題が生じる可能性があります。

例1: キャッシュ無効化の一時停止と再開

以下のコードは、キャッシュの無効化を一時的に停止し、その後再開します。

wp_suspend_cache_invalidation( true );
// 大量のデータ更新処理
wp_suspend_cache_invalidation( false );

例2: カスタム投稿タイプのバルクインサート

大量のカスタム投稿タイプを挿入する際、キャッシュ無効化を停止します。

wp_suspend_cache_invalidation( true );
for ( $i = 0; $i < 100; $i++ ) {
    wp_insert_post( array( 'post_title' => '投稿 ' . $i, 'post_type' => 'custom_type' ) );
}
wp_suspend_cache_invalidation( false );

例3: 特定のデータベース操作前後でキャッシュの制御

特定のメタデータを更新する前後でキャッシュ無効化を制御します。

wp_suspend_cache_invalidation( true );
update_post_meta( get_the_ID(), '_custom_meta_key', '新しい値' );
wp_suspend_cache_invalidation( false );

例4: 大規模なユーザーデータの一括更新

ユーザーの役割を一括変更する場合に使用します。

wp_suspend_cache_invalidation( true );
$users = get_users();
foreach ( $users as $user ) {
    wp_update_user( array( 'ID' => $user->ID, 'role' => 'editor' ) );
}
wp_suspend_cache_invalidation( false );

例5: カスタムタクソノミーの一括登録

カスタムタクソノミーを大量に登録する場合に使用します。

wp_suspend_cache_invalidation( true );
$terms = array( '用語1', '用語2', '用語3' );
foreach ( $terms as $term ) {
    wp_insert_term( $term, 'custom_taxonomy' );
}
wp_suspend_cache_invalidation( false );

注意点

  • キャッシュ無効化を長時間停止すると、キャッシュが古いまま保持され、ユーザー体験に悪影響を与える可能性があります。
  • 作業後には必ずwp_suspend_cache_invalidation(false)を呼び出してキャッシュ無効化を再開してください。

関連機能: