Note(cssが反映されない Part2)

Note ノート

前にもちょっと書いてみましたが、functions.phpではなく<head>に直接書いた場合も同じなので、いろいろ解決策を調べました。
(一部のページでcssをいろいろ試すために、ちょっと別のスタイルシートを作っていたので<head>に直接書いていました)

問題

スタイルシートが反映されない。前回同様にキャッシュの問題ですが、いちいち対応するのがめんどくさいので良い方法を検索・・・

解決

リンクのスタイルシートのファイル名にファイルの更新によって自動生成されるパラメータをつければ解決するとのことでした。
 例えば、functions.phpでスタイルシートを読み込む場合、通常は
  style.css?ver=1.0.0 ← パラメータとしてバージョン情報がついている(?ver=1.0.0)
   →都度、バージョン情報を書き換えればいいがめんどくさい。
 <head>に直接書いた場合、通常は
  style.css ← パラメータはついていない。
   →都度、キャッシュをクリア(スーパーリロード)すればいいがこれも邪魔くさい。

といことで、パラメータに更新日時がつけば、更新すれば変わるので自動で読み込んでくれます。
 style.css?230127090230 ← パラメータとして更新日時(年月日時分秒)がついている。
具体的な対応としては・・・

「functions.php」に書く場合
function mywork_enqueue_scripts() {
  wp_enqueue_style(
    'mywork-theme-style',
    get_template_directory_uri() . '/assets/css/style.css',
    array(),
    date('ymdHis', filemtime( get_template_directory().'/assets/css/style.css' ))
  ); }
add_action('wp_enqueue_scripts', 'mywork_enqueue_scripts');
「<head>に直接」書く場合
  <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/assets/css/style.css?<?php echo date('ymdHis',filemtime(get_template_directory().'/assets/css/style.css')); ?>">

コメント