I log …

WordPressのアセット読み込み(キャッシュ対策)

目次

  1. JS & CSS
  2. 名前
  3. パス
  4. 先に読み込むファイル
  5. バージョン
  6. footer読み込み
  7. メディアクエリ
  8. functions.php

 いっつも忘れるので改めてメモ。

JS & CSS

 JSもCSSもwp_enqueue_xxxを使う。

名前

 読み込まれる際のidに使われる。
 wp_enqueue_scriptの第一引数を’myscript’にすると’myscript-js’、wp_enqueue_styleで’mystyle’にすると’mystyle-css’というように、それぞれ-js、-cssが付与されたidがつく。

パス

 get_theme_file_uri()やget_template_directory_uri()を使ってドメイン込みの絶対パスを呼び出すのが一般的。

先に読み込むファイル

 依存関係にあり、先に読み込んでおく必要があるファイルの名前を指定します。配列を入れるため、ない場合は空の配列を指定。

バージョン

 それぞれ、第四引数で指定したものが’?ver=1.0.0’など、パラメータでバージョン管理される。指定しないとWPのバージョンになるので指定しないよりは指定した方がいい。

 ただ、個人的にはfilemtime()を使って動的な数値を指定している。
 WPではキャッシュが高速化の鍵となるため、JSやCSSはキャッシュを指定したいが、いちいちキャッシュを手動で消すのは面倒で仕方ない。
 そこで登場するのがPHP関数のfilemtime()。これはファイルの更新時のタイムスタンプを返す関数なので、これをバージョンに指定しておくとファイルを更新したときのみパラメータの数値が変わるため別のファイルとして認識され、キャッシュが消える。
 その際、ファイルの指定にはドキュメントルートからのルートパスを返すget_stylesheet_directory()を使う。

footer読み込み

 wp_enqueue_scriptの第五引数。
 trueだとwp_footer()で出力され、falseだとwp_head()で出力される。

メディアクエリ

 wp_enqueue_styleの第五引数。
 デフォルトは’all’。その他、’print’、’screen’などW3Cで用意されているメディアクエリを指定可能。

functions.php

 アクションフックはwp_enqueue_scripts。