WordPressでenqueueされたURLに、自動で本体のバージョンが挿入されるのをテーマのバージョンに変更する方法

WordPressでは、CSSやJS等を依存関係を解決しながら head, footer に挿入してくれる「wp_enqueue_style」「wp_enqueue_script」といった関数があり、コア機能やプラグインでも利用されている。この機能は、後からテーマ側からプラグインやコア機能を拡張したり制御するのに役に立つ一方で、デフォルトの状態ではWordPressの本体のバージョンを、勝手に外部ファイルのVersionとして書き出す仕様になっている。

当サイトの外部ファイル呼び出し時の例

「ver=5.9.5」は、2022年12月30日現在での当サイトのWordPressのバージョンと一致。

<link rel='stylesheet' id='dashicons-css' href='https://nkmrkisk.com/wp-includes/css/dashicons.min.css?ver=5.9.5' media='all' />
<link rel='stylesheet' id='admin-bar-css' href='https://nkmrkisk.com/wp-includes/css/admin-bar.min.css?ver=5.9.5' media='all' />

外部からカンタンに確認できるのは好ましくないので、これをテーマのバージョンに書き換える方法を紹介します。ちなみに、当サイトは以下の「Go」というテーマを利用させていただいています。現在のバージョンは「1.7.3」でした。

PHPの処理を追加

テーマファイル(functions.php等)やプラグイン等を使って、以下のコードを挿入します。私は公開テーマを使っており、テーマには触れたくないため「Code Snippets」というプラグインを使って挿入しています。

function replace_query_src_version($src){
  $output = preg_replace("/ver=[\d\.]+/", 'ver='.wp_get_theme()->get( 'Version' ) , $src);
  return $output;
}
function init_add_load_src_filter() {
  if( is_admin() ) return false;
  add_filter('script_loader_src', 'replace_query_src_version', 20);
  add_filter('style_loader_src', 'replace_query_src_version', 20);
}
add_action('init', 'init_add_load_src_filter');

外部ファイル呼び出し時の「ver={$version}」がテーマのバージョンになっていれば完了。

<link rel='stylesheet' id='dashicons-css' href='https://nkmrkisk.com/wp-includes/css/dashicons.min.css?ver=1.7.3' media='all' />
<link rel='stylesheet' id='admin-bar-css' href='https://nkmrkisk.com/wp-includes/css/admin-bar.min.css?ver=1.7.3' media='all' />

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください