it-swarm-ja.com

子テーマstyle.cssバージョン管理

私はこれに頭を悩ませてきました。子テーマがあり、style.cssドキュメントに変更を加えました。このファイルのスタイルシート宣言にはバージョンの記述がないため、これらの変更はページの再読み込みでは表示されませんでした。

style.cssがテーマの基盤として読み込まれ、style.cssのヘッダーのバージョン番号が表示されるはずであるのに、表示されないことがわかりました。オンラインで見つけた登録解除、デキュー、リキューのオプションを試しましたが、それでもうまくいきません。

ファイルの変更日に基づいてバージョンを追加した別のcssファイルをキューに入れて回避策を講じましたが、他の人がこの問題を見て適切な解決策を持っているかどうか知りたいです。

1
kls

ばかげて呼んでも、重複することなくキューに入れる方法を見つけました。 @cjbj、私は本当にあなたの助けに感謝します!

子テーマの_function.php_ファイル(優先順位を上げるためにそこにエンキューされたスタイルシートの最後)にエンキューし、テーマが登録しているのとまったく同じハンドルを使用していることを確認します(ページのソースコードが、最後に_-css_がない場合)、WPは、テーマが標準登録を試みているときにはすでに登録されていると見なし、それを無視します。バージョン管理にfilemtime()を使用すると、完全に機能します。

wp_enqueue_style( 'theme stylesheet specific handle', get_stylesheet_uri(), array(), filemtime(get_stylesheet_directory() . "/style.css" ) );

1
kls

バージョンが_style.css_に正しい方法で含まれていることを確認しますか?その場合、これは実際に機能するはずです(_wp_enqueue_scripts_でフック):

_    $theme_data = wp_get_theme();
    wp_register_style('your-style-handle', get_template_directory_uri() . '/style.css', '', $theme_data['version'], 'all');
    wp_enqueue_style('your-style-handle');
_

開発中、常に_style.css_のファイルバージョンを変更したくない場合があります。その場合、上記のコードで_$theme_data['version']_の代わりにfilemtime( get_template_directory_uri() . '/style.css' )を使用できます。コード的にはそれを行うのが適切でしょう。それ以外の場合は、ブラウザのキャッシュの問題に注意してください。

1
cjbj