ハシウェブ

Web制作、プログラミングに関する情報を発信するブログ

【WordPress】「更新されない」の解決方法 キャッシュ対策

【WordPress】「更新されない」の解決方法 キャッシュ対策

企業や店舗のホームページ制作をしていると、完成後、納品前には必ずクライアントチェック、修正作業、再クライアントチェックという流れになります。
絶対に修正したはずで、自分のパソコンでは何の問題もないのに、「表示がぐちゃぐちゃになっている」「修正が指示通りされていない」というようなクレームが以前よくありました。
そんなクレームがなくなるように対策をしました。

目次
  1. キャッシュ対策の方法
  2. なぜ、「修正されていない」というクレームがくるか
  3. 解決策はキャッシュなんて知らなくても済むようにすること

キャッシュ対策の方法

wordpressだとfunctions.phpに以下を書きます。

function add_filedate($filename){
	date_default_timezone_set('Asia/Tokyo');
	$file_path = get_template_directory().'/'.$filename;
	if (file_exists($file_path)) {
		$file_url = get_template_directory_uri().'/'.$filename;
		$put_query = date('YmdHi', filemtime($file_path));
		$file_href_output = $file_url.'?'.$put_query;
		return $file_href_output;
	}
}

filemtimeというのが、ファイルの更新時刻を取得するphp関数です。
メディアの画像やwordpressのエディタに反映させるには少し修正が必要です。今回は割愛します。

テーマフォルダ内にimgフォルダを作り画像を入れてある場合は、テンプレートファイル(header.php、footer.php等)に以下のように書きます。

<?php echo add_filedate("img/apple.jpg"); ?>

ファイル名のうしろ「?」以降に、そのファイルの更新日が入ります。

ちなみに、「?」のうしろの値はパラメータといったりします。

(ドメイン)/wp-content/themes/(テーマフォルダ)/img/apple.jpg?202004022152

こうすることで、更新されたときはキャッシュではなくファイルを読み込み、更新がないときはキャッシュが残っているので高速化も維持できます。

なぜ、「修正されていない」というクレームがくるか

  • クライアントはキャッシュという機能を知らない
  • クライアントは誰がどこでどんな端末で見ても同じだと思っている

これが理由です。

キャッシュの説明
ウェブブラウザ(IE、chrome等のホームページをみるためのソフトウェア)にはキャッシュという機能があり、一度、見たことがあるサイトにリンクしている画像等のファイルをパソコン内に記憶させています。これによりサイトを見に来るたびに毎回画像を読み込む必要がなくなり、サイトの表示速度を速くすることができます。

こういう理由なので、「キャッシュをクリアしてください」と何度も言ってきました。
ただ、クライアントからすればどうでもいい話で「とにかく手間かけさせずに良いもの見せろよ」って思っていると思います。

悩み

これだとホームページ制作のたびに、自分も同じことを言うことでストレスもたまり、クライアントにも不具合連絡をさせてしまい確認を何度もさせてしまうことになります。
これでは誰にもメリットがありません。

解決策はキャッシュなんて知らなくても済むようにすること

結局、制作側でひと手間かけてパラメータを追加することで、自分も含め誰にもストレスかけさせることなく制作をすすめることができるようになりました。

ホームページ制作をしていると、「ホームページはそういうものなので」とクライアントの話を聞き流してしまうこともありました。

なにか方法がないか調べてみるといろんな情報を発信してくれています。
思考停止せず、問題解決をしていくことでお互いのストレスがなくなり、自分のスキルアップにもつながります。こうしていくことが大事なことだと思いました。