メインコンテンツへスキップ

CDNキャッシュの管理

WP-Chorusは静的ファイルにCDNを利用することで高速化を実現しています。

画像や記事などの静的ファイルを置き換え後、ウェブサイトの表示が変わらない場合はCDNからのキャッシュが表示されている可能性があります。

CDNはステージングでは使用されていないため、ステージングのウェブサイトは即時更新が反映します。

本番環境においてキャッシュ反映前に動作確認されたい場合、下記のキャッシュのクリア以外にアドミンドメイン(/wp-admin/を除いたURL)での接続をお試しください。

キャッシュをクリアしたり、キャッシュの有効期間の変更はコンソール ( https://console.wp-chorus.jp/ )のCDNメニュー > キャッシュ設定から可能です。

cdn.PNG

 

選択可能なキャッシュのクリアパターン

  • サイトの全てのキャッシュをクリア
  • ディレクトリ内の全てのキャッシュファイルをクリア
  • ディレクトリとサブディレクトリの全てのキャッシュファイルをクリア
  • 同じ名前でファイル名拡張子が要なる全てのキャッシュファイルをクリア

選択可能なキャッシュの有効期間

  • 1時間
  • 1日間
  • 7日間(デフォルト値)
  • 30日間

キャッシュへのファイル除外

ファイル除外メニューからはサイトの特定ファイルをキャッシュさせない制御が可能です。

cdn2.PNG

  • 除外ファイルの指定方法例
    • すべての .jpg ファイルを除外:/*.jpg
    • ディレクトリ内、下のサブディレクトリ内のすべての.jpgファイルを除外:/directrory-path/*.jpg
    • ファイル名が a で始まるすべての .jpgファイルを除外、ファイルパスが a で始まるすべての .jpg ファイル:/a*.jpg
    • ファイル名拡張子が .docで始まるすべてのファイル(.doc, .docx, .docm)を除外:/*.doc*
除外設定の上限は72個までとなります

WP-Chorus オリジナルプラグインについて

2025/9/12のアップデートにてWordPressから直接キャッシュ操作が可能なプラグインを提供しています。

このプラグインを用いることでWordPress管理画面からもキャッシュクリアが可能です。
なお、標準では「実行する」ボタンのクリックで全ページ(/*)のキャッシュがクリアされます。

wp1.png

 

自動キャッシュクリア

手動作業での全ページ( /* )のキャッシュクリア以外に固定ページ投稿ステータス状態によって関連パスのキャッシュを自動的にクリアする設定が可能です(標準では自動キャッシュクリアは『しない』設定です)。

 

wp2.png

 

自動キャッシュクリアを有効にした場合の範囲

old_status new_status 補足
公開済み
(publish)
新規投稿を作成してすぐ下書きに保存を介さず直接公開
予約済み
(future)
公開済み
(publish)
 
公開済み
(publish)
公開済み
(publish)
公開済みの投稿を修正した場合の動作
公開済み
(publish)
下書き
(draft)
 
公開済み
(publish)
保留中
(pending)
 
公開済み
(publish)
非公開
(private)
 
公開済み
(publish)
予約済み
(future)
 
公開済み
(publish)
削除
(trash)
 

キャッシュクリアのタイミング

  1. 予約済み → 公開済み

    • 同一時間に予約済みの投稿が全て公開された時点でキャッシュをクリアする

  2. 上記以外

    • 投稿の状態が変更があった場合、1分後にキャッシュをクリアする

キャッシュクリア対象(パス)

  • 以下のパスに対してキャッシュをクリアする

    1. サイトのホームURLパス

      • /

    2. 投稿のパーマリンクURLパス

      • /post_name/*

    3. 投稿のタクソノミーアーカイブURLパス(taxonomy, term)

      • /category/*

      • /term/*

    4. 投稿タイプのアーカイブURLパス

      • /post-type/*

4. キャッシュクリアのパス上限

  • クラウド基盤の仕様により、キャッシュクリアのリクエスト時に対象パスが100件を超える場合は全ページ(/*)のキャッシュクリアとなります(後述のカスタマイズにより変更可能)

 

(付録)プラグインのカスタマイズ

テーマのfunctions.phpファイルに以下のhookを用いてキャッシュクリアの処理をカスタムすることが可能です。

a)手動キャッシュクリアのパス変更

  • 手動キャッシュクリアで全てのページ(/*)ではなく、特定ページをクリアする

    add_filter('wp_chorus_manual_invalidation_path', function($paths) {
        // $paths: []
    
        // 特定パスのみクリアする
        return array(
            '/my-custom-page/',
            '/another-path/*',
        );
    });

b)投稿のキャッシュクリア処理可否

  • 投稿の状態が変わった時にキャッシュクリア対象にするか制御

    add_filter('wp_chorus_is_invalidation', function($result, $post, $old_status) {
        // $result     : 投稿のキャッシュクリア処理可否 (boolean)
        // $post       : 対象投稿のオブジェクト       (\WP_Post)
        // $old_status : 投稿の前回のステータス
    
        // 例: 特定のpost_typeはクリアしない
        if ($post->post_type === 'revision') {
            return false;
        }
    
        // 例: 特定のカテゴリーはクリアしない
        if (has_term('news', 'category', $post)) {
            return false;
        }
    
        return $result;
    }, 10, 3);
    
    

c)投稿のキャッシュクリアパス変更

  • 投稿に対してのキャッシュクリアパスを変更

    add_filter('wp_chorus_invalidation_path', function($paths, $post) {
        // $paths : キャッシュクリア対象パス  (array)
        // $post  : 対象投稿のオブジェクト   (\WP_Post)
    
        // 例1: 特定パスを除外
        foreach ($paths as $key => $path) {
            if (strpos($path, 'hello') !== false) {
                unset($paths[$key]);
            }
        }
    
        // 例2: 特定カテゴリーである場合、全ページクリア
        if (has_term('news', 'category', $post)) {
            return array('/*');
        }
    
        // 例3: 特定のpost_typeである場合、パス追加
        if ($post->post_type === 'product') {
            $paths[] = '/shop/';
            $paths[] = '/recommendations/*';
        }
    
        return $paths;
    }, 10, 2);
    

d)キャッシュクリアパスの上限変更

  • キャッシュクリアする対象のパスが100件を超える場合、全ページ(/*)をキャッシュクリアするが、その上限を変更

    add_filter('wp_chorus_max_path', function($max) {
        // $max : キャッシュクリアパスの上限(デフォルト:100件)
    
        // 例:キャッシュクリアのパスを200件まで許容
        return 200;
    });
    

e)キャッシュクリア予約待機時間変更(予約公開は除外)

  • 自動キャッシュクリアは1分を待ち、その間に発生した処理は1分後に一括でキャッシュをクリアするが、待ち時間を変更

    add_filter('wp_chorus_cron_wait', function($minutes) {
        // $minutes: クリア処理の待機時間(デフォルト:1分)
    
        // 例:キャッシュクリア待機時間を5分に変更
        return 5;
    });

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています