2017-01-25 7 views
1

MaxCDNとCloudlfareでW3キャッシュプラグインを使用しているWordPressサイトがあります。私はいくつかの異なる速度テストを実行し、1つの一般的な提案は "静的リソースからクエリ文字列を削除する"ことです。私はプラグインをダウンロードしてどこにでもキャッシュをクリアしましたが、まだこのメッセージがあります。いくつかの精密検査の後特有のクエリ文字列を削除しようとしています

function vmf_remove_script_version($src) { 
if (strpos($src, 'ver=')) { 
    $src = remove_query_arg('ver', $src); 
} 
return $src; 
} 
add_filter('script_loader_src', 'vmf_remove_script_version', 15, 1); 
add_filter('style_loader_src', 'vmf_remove_script_version', 15, 1); 

、speedtestsがで終わるを参照するすべてのファイルが判明?(50+のファイルがありますそのうち)x81224。だから私は以下のコードを修正しましたが、修正はありません!

function remove_cssjs_ver($src) { 
if(strpos($src, '?ver=')) { 
    $src = remove_query_arg('ver', $src); 
}elseif(strpos($src, '?x')) { 
    $src = str_replace('?x81224','',$src); 
    //remove_query_arg('x', $src); <- thought this wouldn't work because there's no = sign 
} 
return $src; 
} 
add_filter('style_loader_src', 'remove_cssjs_ver', 10, 2); 
add_filter('script_loader_src', 'remove_cssjs_ver', 10, 2); 

私はこれをどのように修正することができますか?

答えて

0

最初に、?ver = ... query引数を削除することはお勧めできません。このバージョンは通常静的であり、スクリプトを変更した場合にのみ更新する必要があります。

お客様のクライアントは、ローカルブラウザの履歴にスクリプトを保存するだけでなく、プラグインによってこのスクリプトサーバー側を保存することもできます。バージョンが適切に更新されると、新しいスクリプトが提供されます。 verクエリ引数を削除すると、古くなったスクリプトが(おそらく長い間)クライアントに配信され、多くのトラブルやクライアントの苦情が発生します。 Do not doです。

1)それは他のプラグインによって上書きされないように削除フィルタの優先順位が最新でなければなりませんので、100に引数4を設定する(https://developer.wordpress.org/reference/functions/add_filter/

function remove_cssjs_ver($src) { 
    if(strpos($src, '?x')) { 
    $src = str_replace('?x81224','',$src); 
} 
return $src; 
} 
add_filter('style_loader_src', 'remove_cssjs_ver', 100, 2); 
add_filter('script_loader_src', 'remove_cssjs_ver', 100, 2); 

は、さらに私は、スクリプトを認識する2つの問題があります

2)x81224はどこから来たのですか?この奇妙な付録を作成するプラグイン/関数を見つけ、その理由を調べてください。これは、 "ver"クエリ引数の代わりにカスタムメイドのアイデアのように見えます。

通常、静的リソースからクエリ文字列を削除するのは良い考えではないと言えますが、通常はそれには十分な理由があります。なぜ彼らがそれを推奨するのか分からない。ファイルがクエリ文字列でキャッシュされている場合、サイトの速度が低下することはありません(少なくとも理由は考えられません)。

関連する問題