例1:
slider.js を編集して上書き保存 → FTPアップロード。
でも実際の画面を開くと…前と同じ動き。
原因:
Xserverやブラウザが「slider.js は前と同じファイル」と判断し、
キャッシュ済みの古いバージョンを配信している。
✅ 解決策(確実に最新JSを読ませる方法)
🥇 方法1:WordPressの filemtime() を使う(あなたのテーマはこれを採用済み!)
wp_enqueue_script(
'shisaku-slider',
get_template_directory_uri() . '/assets/js/slider.js',
array('jquery'),
filemtime(get_template_directory() . '/assets/js/slider.js'),
true
);
これにより、読み込みURLが例えばこう変化します:
/assets/js/slider.js?ver=1739999275
→ ?ver= の数字はファイルの最終更新時刻(UNIXタイム)なので、
ファイルを変更・上書きするたびに自動で変わります。
→ つまりブラウザは「別のファイル」と認識して、必ず再取得します。
🥈 方法2:FTPで上書きではなく「削除 → 再アップ」
あなたがやった通りです ✅
削除するとサーバー上のファイル更新時刻(mtime)がリセットされるため、
次回アクセス時に確実に新ファイルが配信されます。
🥉 方法3:ブラウザキャッシュを手動で消す
開発中ならこれも有効:
- Windows:
Ctrl + F5またはCtrl + Shift + R - Mac:
Cmd + Shift + R - Chrome DevTools の「キャッシュ無効化」をONにして更新もOK。
🧱 方法4:Xserverのキャッシュ/WAFを一時オフ
管理パネル → サーバー設定 → 「WAF設定」
→ 対象ドメイン → 「OFF」
※ 数分後に効果が出ます。再ONはあとでOKです。
🚀 実運用時のベストプラクティス
| 環境 | 推奨方法 |
|---|---|
| ローカル(XAMPP) | 通常上書きでOK(キャッシュなし) |
| Xserverなど本番環境 | filemtime() を必ず使用(あなたはOK) |
| 外部CDN利用時(Cloudflare等) | キャッシュクリアを明示的に実行 |
🧩 まとめ
| 状況 | 原因 | 対応策 |
|---|---|---|
| アップロードしても動作が変わらない | 古いJSキャッシュが残っている | ファイル削除→再アップ or filemtime使用 |
| ローカルでは正常、本番ではズレる | サーバーキャッシュ | Xserver WAFを一時OFF |
| たまに直る | 更新時刻が変わったため再配信された | 正常動作に戻っている |
✅ あなたの今の functions.php は、すでに正しい対策が入っています。
つまり、今後同じ問題が起きた場合は、
「サーバーキャッシュ」か「ブラウザキャッシュ」のどちらかです。

コメント