web-dev-qa-db-ja.com

エンキューされたスタイルとスクリプトでのバージョンURLパラメータの防止(?ver = X.X.X)

使用事例

私はChromeのDev Tools Workspace機能を試しています。これには、Dev Toolsでファイルを直接編集し、保存されたスタイルシートを自動的に更新する(またはコンパイルしてから更新する)ことも含まれています。

ただし、 StackOverflowの質問「SASSがCSSを再コンパイルするときにChromeの「Auto-Reload Generated CSS」でページが再読み込みされない」 に記載されているように、スタイルシートURLのURLパラメータはChromeによる変更の認識を妨げます。

望ましい結果

つまり、 開発中のみ 、私はwp_enqueue_style()によって出力される通常のスタイルシート?ver=X.X.Xから<link>を削除したかったのです。つまり、デフォルトのhrefが欲しいのです。

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

代わりにこれです:

http://localhost/mysite/wp-includes/style.css
11
mrwweb

デフォルトのwp_enqueue_[style/script]()の振る舞い

wp_enqueue_style()$version引数のデフォルト値falseです。しかし、そのデフォルトは単にスタイルシートに WordPressのバージョン が与えられることを意味します。

溶液

"WordPressのエンキューされたCSSとJSからバージョンを削除する" のおかげで、バージョンとしてnullを渡すとバージョンが完全に削除されることを文書化されていません。

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

警告リマインダー

質問で指摘されているように、これはおそらく(特定のユースケースのように)開発中にのみ行われるべきであることを指摘する価値があります。 versionパラメータは、サイト訪問者のためのキャッシング(キャッシングではなく)に役立ちます。そのため、99%のケースではおそらくそのままにしておくべきです。

11
mrwweb

あなたの投稿、mrwwebをありがとう。

私はこれに対する別の解決策を見つけました、非常に単純なプラグインを作成することによってあなたはサイトがもう開発中でないときあなたは非アクティブにすることができます。

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

私は数分かけてこの解決策を見つけようとしました。新しい質問/回答を作成する代わりに、ここで別の選択肢を共有することを考えます。

8
Ricardo Andres