[WordPress] 特定のページでキャッシュを無効にしたい
CDNなどのキャッシュを利用したページの高速化などを行う際、会員ページなどをキャッシュの対象外にしたい場合があります。
通常は、キャッシュの対象外にしたいディレクトリ内の.htaccessに
Header append Cache-Control "no-store"
の記述を追加することでキャッシュを無効化することができますが、WordPress上で作成したページはこのような方法が使えません。
WordPressでは、キャッシュ無効のヘッダーを出力するための関数「nocache_headers」が用意されています。
function set_nocache_headers() {
if(is_page('xxx')) {
nocache_headers();
}
}
add_action('template_redirect', 'set_nocache_headers');
「nocache_headers」関数はページの出力が始まる前に実行する必要があります。テンプレートの読み込みが行われる前であり、かつ「is_page」などのページ判定の関数が使用できるタイミングのアクションフック「template_redirect」を使用して、「nocache_headers」を実行しています。
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。