wp_register_scriptから?ver =を削除します


8

スクリプトのクエリ文字列に関して、Googleのスピードテストで問題が発生しています。そのため、そのパラメーターの引数としてfalseを渡して、それらを削除しようとしています。ただし、効果がないようです。

wp_register_script('myscript', get_bloginfo('template_directory').'/scripts.myversionnumber.js',false,false,true);
wp_enqueue_script('myscript');

PS:jsファイル名の「myversionnumber」の部分は、キャッシュ/バージョン管理を制御する私の手段であり、(Googleのページスピードテストによると)一部のプロキシサーバーを作動させる?ver =アプローチではありません。

静的リソースからクエリ文字列を削除する静的リソースのHTTPヘッダーでパブリックキャッシングを有効にすると、ブラウザーはリモートオリジンサーバーからではなく、近くのプロキシサーバーからリソースをダウンロードできます。もっと詳しく知る

このページの提案

「?」が付いているリソース URLの一部のプロキシキャッシュサーバーによってキャッシュされません。クエリ文字列を削除し、次のリソースのURLにパラメーターをエンコードします。


興味深い質問ですが、クエリ文字列がページ速度を上げることを知りませんでした。私には解決策はありませんが、パラメータを "false"に設定することについてのlemmeコメント:Afaik、バージョン番号を入力するか、デフォルトで現在のワードプレスバージョンに設定します。
ヨハネスピル

私は、スクリプトでもバージョン番号で、キャッシュされるだろうと思った-とバージョン番号を変更することは意図ので、新しいが、むしろ古いよりも、スクリプトが....ロードされることを「ブレーク」キャッシュ、ということ
スティーブン・ハリス

@Stephen、まさにその考えです。ただし、一部のプロキシキャッシュサーバーは、クエリ文字列パラメータを持つリソースURLをキャッシュしないようです。そのため、代わりにファイル名にパラメータをエンコードすることにしました。同じ効果で、手荷物が少なくなります。
スコットB

こんにちはスコットB。私は同じ問題に直面しています。gtmetrixでテストを実行した後、クエリのエラーが発生します。@SickHippieが提供するソリューションは役に立ちましたか?使用しても安全ですか?
kat_indo 2013年

回答:


9

4番目のパラメータとしてNULLを渡す必要があると思います。

wp_register_script(
    'myscript',
    get_bloginfo('template_directory').'/scripts.myversionnumber.js',
    false,
    NULL,
    true);
wp_enqueue_script('myscript');

3

またはにnullバージョン値として渡すことができ、クエリ文字列をドロップする必要があります。wp_register_scriptwp_enqueue_script

<?php
wp_enqueue_script(
   'myscript',
   '/path/to/script.js',
   array(),
   null
);

3

序文

私はこれをSickHippiechrisguitarguyとは大きく異なる方法で解決しましたが、それが解決されるはずの方法ではないと思いますが、私にとっては非常にうまく機能しています。

コード...

このコードスニペットをテーマのfunctions.phpファイルの最後に配置します。

function remove_cssjs_querystring( $src ) {
  if( strpos( $src, '?rev=' ) ) // copy/paste this line and the next one to take away what you want from the end of your css/js
    $src = remove_query_arg( 'rev', $src );
  if( strpos( $src, 'ver=' ) )
    $src = remove_query_arg( 'ver', $src );
  return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_querystring', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_querystring', 10, 2 );

アイデアの由来は...

私はそれをグーグルで探していて、この記事を見つけましたが、css / jsで問題を抱え続けました:この時点で私のコードは最後に(あちこちに)まだあり.../some-stylesheet.css?rev=...、コードスニペットを拡張することを考えました後になっていた可能性のあるものを含めるために少し.css

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.