web-dev-qa-db-ja.com

"wp_enqueue_style();"新しい編集スタイルを読み込まない

まず、英語をすみません。私は自分のサイトファイルを管理するためにflywheelでLocalを使っています、そして私のwordpressのバージョンは4.9.4です。

私が使用するとき、ここに問題があります

 wp_enqueue_style('wharever', get_stylesheet_uri());

最初にstyle.cssをロードするには、まず単純なコンテンツを入れます。

body { color: orange; }

すべてうまくいっていて、オレンジ色のテキストですべてが入っているページがありますが、style.cssの本体の色を緑色(または何でも)に変更しても、変更されず、常にオレンジ色になります。

PS。:wp_enqueue_styleで、versionパラメータを変更して彼は変更しましたが、最初のときだけ最初の色で貼り付けられたバージョンに貼り付けました。

これがワードプレスの機能である場合、どうすればこれを無効にできますか?バージョンを変えずにテストするだけではstyle.cssを自由に変更できないことを知っていても、あまり役に立ちません。

2
DVDSON

それはキャッシュの問題です。これを回避するために、ブラウザがキャッシュしないようにスタイルシートのURIにランダムな文字列を追加します。

まずランダムな文字列が必要です。この単純な関数を使って生成します。

function randomAlphaNumeric($length) { $pool = array_merge(range(0,9), range('a', 'z'),range('A', 'Z')); $key=''; for($i=0; $i < $length; $i++) { $key .= $pool[mt_Rand(0, count($pool) - 1)]; } return $key; }

今すぐあなたのエンキューにこのようにそれを使用してください:

wp_enqueue_style('wharever', get_stylesheet_uri().'?random='.randomAlphaNumeric(5));

1
n8bar

もう1つの解決策は、キャッシュ無効化にfilemtimeを使用することです。これにより、最後に変更されたタイムスタンプがクエリ文字列変数として使用されます。

これにはまだブラウザキャッシュを使用しているという利点がありますが、クエリ文字列が変更されるため、ファイルが実際に変更されたときに新しいファイルが提供されます。例えば。

$lastmodtime= filemtime(get_stylesheet_directory().'/style.css');
wp_enqueue_style('whatever', get_stylesheet_uri(), array(), $lastmodtime);
1
majick