素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2018年3月10日
最終更新日:

【キャッシュ対策】WordPressのCSSにクエリパラムを付与しての変更を即時反映させる方法【更新日時をつける】

YouTubeも見てね♪

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

レッドブル エナジードリンク 250ml×24本

created by Rinker
Red Bull(レッドブル)
¥4,000 (2024/04/03 21:42:12時点 Amazon調べ-詳細)

翼を授けよう!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール

created by Rinker
BANDAI SPIRITS(バンダイ スピリッツ)
¥7,500 (2024/04/03 21:42:14時点 Amazon調べ-詳細)

もう一人の僕を呼び覚ませ!!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/04/03 21:42:18時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

CSSを変更したのに変更が適用されない

あれ?変わらない・・・

WordPress等でブログを作成している場合、レイアウトを調整するためにCSSファイルの内容を変更しても、すぐに反映されない事があると思います。

なぜ反映されないのか?

これはキャッシュ(正式にはブラウザキャッシュ)という機能が働いている事が原因です。

ブラウザキャッシュとは?

Google ChromeMozilla FirefoxInternet ExplorerなどのWebブラウザは、インターネット上にある様々な情報をHTTP通信で取得し、表示することで閲覧を可能にしてくれるアプリケーションです。
しかし、毎回同じURLにアクセスしデータを取得するとなると、通信量が非常に多くなってしまい、見る側見られる側負担が多くなってしまいます

そこで、Webブラウザは一度取得した情報(画像ファイルやCSSファイル、JavaScriptファイル)をブラウザキャッシュとして一時保存し、取得し直すことなく再表示を可能にしてくれます。

同じファイル名だと再取得しない

しかし、この機能が原因でCSSファイル等を変更してもファイル名が同じだと、修正前の古い情報をそのまま適用するので反映されない!という問題が発生してしまうのです。

じゃあどうすればいいか?

もちろん、変更したことを知っている人であればブラウザキャッシュを削除すれば良いが、サイト訪問者全てがブラウザキャッシュを削除してくれるわけでは無いので必ず何かしらの対策を入れる必要があります。

方法としてはHTMLでCSSファイル等を読み込む際に、変更日時等をクエリに付与して読み込むこと強制的に読み込ませる、という方法がメジャーです。

例えば、以下のような読み込みの仕方をしていると、ブラウザキャッシュが効いてしまうのでCSSファイルの内容を変更しても反映がされないです。


しかし、以下のような自動でファイルの編集日時を付与するような読み込みの仕方をしていれば、ファイル名が同じでもクエリ文字列に差があるので、再読み込みをしてくれるようになります。

WordPressを使っているのであれば、クエリ文字列にファイルの更新日時を自動で付与することが可能なので、今回はその設定方法をご紹介致します。
※JavaScriptファイルや画像ファイルについても同様にクエリ文字列をつけるようにすることでキャッシュ対策が可能です

手順

header.phpで読み込んでいる場合

まずは、header.php直接CSSファイルを読み込んでいる場合の修正方法です。
ダッシュボードから外観>テーマの編集>テーマヘッダー(header.php)を選択します。

CSSファイルを読み込んでいる行を見つけたら、以下のように修正しましょう。


これだけでCSSファイルの末尾に自動ファイル更新日時のクエリ文字列が付与されるので、ファイルの内容を修正すれば自動的にキャッシュがクリアされるようになります。

function.phpでCSSを読み込んでいる場合

使用しているテーマによっては、header.phpではCSSの読み込みをしておらずwp_enqueue_styleという関数を使用して、CSSを読み込ませているものもあります。
その場合はまず、ダッシュボードから外観>テーマの編集>テーマヘッダー(header.php)を選択します。

次に、「wp_enqueue_style」という文字列で検索をかけます。
該当する項目があったら、以下のように★マークの部分を修正してファイルを更新ボタンをクリックします。


これだけでOKです。

確認

では実際にブラウザの開発者ツールを使ってソースの読み込み部分を確認してみましょう。

正常にクエリ文字列が反映されていますね。

終わりに

Webサイト制作をする上では、静的コンテンツのキャッシュ対策マストとなります。

この対策が出来ていないと、Webサイトのレイアウトリニューアル時に一気にデザイン崩れ等が発生してしまい、利用者を失うことに繋がってしまうので、必ず対策を入れるように心がけましょう。

CATEGORIES & TAGS

IT