web-dev-qa-db-ja.com

静的リソースからクエリ文字列を削除する方法

静的リソースからクエリ文字列を削除することを知っている専門家は誰でも plugin?動いていない。

また、私は私のテーマのfunction.phpファイルにこのコードを書き込もうとしました

function _remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

これも私のために働いていません。

W3 Total Cache の「設定変更後の設定変更後のオブジェクトのキャッシュを防止する」のチェックも外していますが、 GTMetrix でも同じ結果になります。

誰かが私を手伝ってくれる? Twenty Twelve というテーマを使っています。私は他のテーマでも同じテクニックを試しました。

以下はGTMetrixのメッセージフォームのスクリーンショットです: screen shot of problem 

3
Qasim Khan

あなたのURLにクエリ文字列を追加するJetPackのPhotonを使っているようです。このスレッドによるとそれらを削除する方法はありません https://wordpress.org/support/topic/how-to-remove-photon-query-string?replies=2

クエリ文字列を削除したい場合は、クエリ文字列を追加しないCDNを使用して、そしてあなたが言及したスニペットを使用して、photonを無効にすることをお勧めします。

function _remove_script_version( $src ){
$parts = explode( '?ver', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
5
CodyA

クエリ文字列はキャッシュを無効にするのに最善の方法であるため、削除することはお勧めできません。

うーん、多分私はそれを言い換えるべきです。キャッシュを無効にしたままパラメータを「隠す」URLスキームを実装するコストは、単純なワードプレスサイトでは実装するには多すぎます。理論的にはそれを実行できますが、実際には誰もそれを実行したことがありませんでした。

0
Mark Kaplun

Mark Kaplun で述べたように、Webサイトにはクエリ文字列が必要な場合があります。この例では、?w=クエリを使用して画像サイズを設定します。

それでもこれらのクエリを削除したい場合は、functions.phpに次のコードを使用してください。

add_filter( 'script_loader_src', 'wpse_216912_remove_query' );
add_filter( 'style_loader_src', 'wpse_216912_remove_query' );

function wpse_216912_remove_query( $src ) { // Remove query strings from static resources also jetpack query
   if ( strpos( $src, '?ver=' ) || strpos( $src, '&ver=' ) || strpos( $src, '?w=') || strpos( $src, '?a600e5')  ) {
        $src = remove_query_arg( array( 'ver', 'w', 'a600e5' ), $src );
    }
    return $src;
}