サイトの変更をキャッシュに邪魔されずに反映させる
2018年11月13日
しつこいキャッシュのせいでサイトのデザイン変更などの反映がなかなかうまくいかない場合の対処方法。
クライアント案件では必須!
stylesheet,javascriptのファイル名にパラメーターを当てることで回避できる。
くれあいの場合は
https://kureai.info/kureai-site/wp-content/themes/kureai/css/common.css?ver=2018106062449
という感じ。common.cssの後に?から始まる数字(この場合はファイルが更新された日付)が付与されることで、ブラウザは新しいファイルとして読み込むためキャッシュは無視される。
以下のコードをfunctions.phpのwp_register_stlye部分に追加することで自動的に付与される。
wp_register_style('style',get_bloginfo('template_directory').'/css/common.css', array(), date('YmdHis',filemtime(get_stylesheet_directory().'/css/common.css')) );
ここでハマったのがfilemtimeの後の部分。
filemtimeではファイルまでのパスが重要で
(get_stylesheet_directory(). ‘/css/common.css’))
でないとダメ。
get_tempalte_directory_uri()ではダメだった。
なぜこんなにハマったかというと、get_tempalte_directory_uri()のパスを使う方が良いと紹介しているサイトが多かったから。自分で勉強しろ!ってことですね。
あと最後に、せっかく上記の設定をしても、cssjsのverをremoveする関数が書かれていたらなんの意味もなくなるので注意!!