WordPressで.cssのバージョンを変更する方法は?


13

タイトルが示すように、テーマ内の.cssファイルのバージョンを変更する方法がよくわかりません。現時点では、.cssのバージョン管理は次のようになっています。

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

実行する必要のあるスクリプトはありますか-上記のようにバージョン4.6.2をどこに作成すればよいですか?


このスクリプトをどのように印刷しますか?
Nathan Powell、

回答:


18

4番目の引数で$verwp_enqueue_style()、バージョンを設定できます。

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

ドキュメントごと:

$ ver(string | bool | null)(オプション)スタイルシートのバージョン番号を指定する文字列(ある場合)。これは、キャッシュ無効化のためにクエリ文字列としてURLに追加されます。versionがfalseに設定されている場合、現在インストールされているWordPressバージョンと同じバージョン番号が自動的に追加されます。nullに設定すると、バージョンは追加されません。デフォルト値: false


それをありがとう-私が尋ねていることは、「どうやってそれを行うのですか」、すなわち「どのようにしてそのスクリプトを実行して新しいバージョンを生成するのか」だと思いますか?理にかなっているといいのですが…
ヘンリー

wp_enqueue_style()が呼び出されるコードで質問を更新しますか?WordPressは$ver回答に投稿された説明に基づいて自動的にバージョン管理を処理するため、$ verがfalseに設定されていると想定しています。これを変更したい場合は、$ ver引数を新しい文字列に変更します(この規則はWordPressですでに使用されているため、4.6.2は使用しません)が、技術的には機能します。
Dave Romsey、2016年

1
そこでは何でも簡単に置き換えることができます。たとえば$ver = time();、ページにアクセスするたびに新しいバージョンが作成され、そのバージョンが時間になります。
Nathan Powell、

8

ほとんどの場合、テーマのwp_enqueue_style()functions.phpファイル内の関数を使用して、スタイルシートをヘッダーに追加します。テーマが同じかどうかを確認する方法は次のとおりです。

wp-content/themes/YOUR_THEME_NAME/functions.phpファイルを開き、スタイルシートを追加している行を見つけます。

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

または好き:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

IDを検索できます(-css一部を除く)... IDが次の場合:functions.phpファイルmain_style-cssだけmain-styleを検索すると、探していたコード行が見つかるはずです。

これでコードが見つかり、wp_enqueue_style()functions.phpファイルを使用してテーマがこのスタイルシートを追加することがわかりました。このコードをバージョンに合わせて更新する必要があります。

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

ご覧のように、このコードは、filemtime()PHP関数を使用してstyle.cssファイルの最終変更時刻を取得し、また、わかりやすくtime()するために、PHP関数を使用して時刻をタイムスタンプに変換します。

バージョンを毎回動的に変更したくない場合は、次のようにします。

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

それはほとんどそれです。平和!


ヘッドアップ:システムパスを返すため、get_stylesheet_directory()内部で使用する必要がありfilemtime()ます。
ハーフクレーズ

3

私はこれらの答えをあまり活用していなかったので、自分に役立つものを書こうと思いました。私はコーデックスが言うことを知っています:

$ ver(string | bool | null)(オプション)スタイルシートのバージョン番号を指定する文字列(ある場合)。これは、キャッシュ無効化のためにクエリ文字列としてURLに追加されます。versionがfalseに設定されている場合、現在インストールされているWordPressバージョンと同じバージョン番号が自動的に追加されます。nullに設定すると、バージョンは追加されません。デフォルト値:false

しかし、それが実際にどのように機能するかについては非常に謎めいています。スタイルシートのwp_enqueue_styleよう?ver=1.2.3にクエリパラメータをトリガーするためのバージョン番号を取得できませんでした。ただし、trueに設定すると、スタイルシートの宣言されたバージョンがスタイルシートに許可されcache bustます。(読む)

style.css内で、テーマに名前を付ける必要があります。これはWPで必要です。ただしversion、wp_enqueue_styleのバージョンのブール値などのその他のオプションも参照を提供します。

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

これを変更するVersion: 4.1と、style.css?cache-bust=0.24135995238933283


2

time()このように、エンキュースタイルまたはスクリプトの時点で単純に使用できます。

ワードプレスwp_enqueue_style()機能を使わずに

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

wp_enqueue_style()関数の使用

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

または

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());

1
私はこれをお勧めしません。バージョンのキャッシュをすべて無効にすることは間違いないと思います。
Fabian von Ellerts
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.