Wie ändere ich die Version von .css in WordPress?

13

Wie der Titel schon sagt, bin ich mir nicht sicher, wie ich die Version einer CSS-Datei in meinem Design ändern soll. Im Moment sieht die CSS-Versionierung folgendermaßen aus:

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

Gibt es ein Skript, das ich ausführen muss - wo sollte ich suchen, um die Version 4.6.2 wie oben zu erstellen?

Henry
quelle
Wie bringen Sie dieses Skript zum Drucken?
Nathan Powell

Antworten:

16

Mit dem vierten Argument $verfür wp_enqueue_style()können Sie die Version festlegen:

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

Gemäß den Dokumenten:

$ ver (string | bool | null) (Optional) String, der die Versionsnummer des Stylesheets angibt, falls vorhanden, und die der URL als Abfragezeichenfolge für Cache-Busting-Zwecke hinzugefügt wird. Wenn die Version auf false gesetzt ist, wird automatisch eine Versionsnummer hinzugefügt, die der aktuell installierten WordPress-Version entspricht. Wenn auf null gesetzt, wird keine Version hinzugefügt. Standardwert: false

Dave Romsey
quelle
Vielen Dank dafür - ich denke, ich frage: "Wie mache ich das?" - "Wie führe ich dieses Skript aus, um eine neue Version zu generieren?". Hoffe das macht Sinn ...
Henry
Würden Sie Ihre Frage mit dem Code aktualisieren, in dem sie wp_enqueue_style()aufgerufen wird? WordPress behandelt die Versionierung automatisch basierend auf der Erklärung, $verdie in meiner Antwort veröffentlicht wurde. Daher gehe ich davon aus, dass $ ver auf false gesetzt ist. Wenn Sie es ändern möchten, ändern Sie das Argument $ ver in eine neue Zeichenfolge (ich würde 4.6.2 nicht verwenden, da diese Konvention bereits von WordPress verwendet wird), aber technisch würde es funktionieren.
Dave Romsey
1
Sie können dort leicht alles ersetzen. Zum Beispiel $ver = time();würde jedes Mal, wenn Sie auf die Seite klicken, eine neue Version erstellt, und die Version wäre die richtige Zeit.
Nathan Powell
8

Meistens verwendet das Thema die wp_enqueue_style()Funktion in der Datei functions.php, um ein Stylesheet in die Kopfzeile einzufügen. Hier erfahren Sie, ob Ihr Thema dasselbe tut.

Öffnen Sie Ihre wp-content/themes/YOUR_THEME_NAME/functions.phpDatei und finden Sie die Zeile heraus, in der das Stylesheet hinzugefügt wird.

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

Oder wie:

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

Sie können nach der ID suchen (mit Ausnahme eines -cssTeils) ... wenn die ID lautet: main_style-cssSuchen Sie nur main-stylein Ihrer Datei functions.php, und Sie sollten wahrscheinlich die gesuchte Codezeile finden.

Nachdem Sie den Code gefunden haben und wissen, dass Ihr Design dieses Stylesheet mithilfe der wp_enqueue_style()Datei functions.php hinzufügt . Sie müssen diesen Code für die Version aktualisieren.

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

Wie Sie sehen können, erhält dieser Code die letzte geänderte Zeit der Datei style.css mithilfe der filemtime()PHP-Funktion und konvertiert die Zeit mithilfe der time()PHP-Funktion in einen Zeitstempel , um die Dinge sauber zu machen.

Wenn Sie nicht möchten, dass sich die Version jedes Mal dynamisch ändert, können Sie dies einfach tun:

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

Das wars so ziemlich. Frieden!

Waqas Jawed
quelle
Heads up: Sie sollten get_stylesheet_directory()inside verwenden, filemtime()da ein Systempfad zurückgegeben wird.
Half Crazed
3

Ich habe nicht viel aus diesen Antworten herausgeholt und dachte, ich würde schreiben, was für mich funktioniert. Ich weiß, dass der Kodex sagt:

$ ver (string | bool | null) (Optional) String, der die Versionsnummer des Stylesheets angibt, falls vorhanden, und die der URL als Abfragezeichenfolge für Cache-Busting-Zwecke hinzugefügt wird. Wenn die Version auf false gesetzt ist, wird automatisch eine Versionsnummer hinzugefügt, die der aktuell installierten WordPress-Version entspricht. Wenn auf null gesetzt, wird keine Version hinzugefügt. Standardwert: false

Aber es ist sehr kryptisch, wie es tatsächlich funktioniert. Ich konnte keine Versionsnummer wp_enqueue_styleeingeben, um einen Abfrageparameter wie ?ver=1.2.3in meinem Stylesheet auszulösen . Wenn Sie jedoch true festlegen, wird die deklarierte Version cache bustdes Stylesheets für das Stylesheet verwendet. (weiter lesen)

In Ihrer style.css müssen Sie Ihr Thema benennen. Dies wird von WP verlangt. Es gibt jedoch auch andere Optionen, wie z. B. versiondie boolesche Version von wp_enqueue_style.

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

Wenn ich das jetzt ändere, Version: 4.1bekomme ichstyle.css?cache-bust=0.24135995238933283

Ben Racicot
quelle
2

Sie können es einfach time()zu einem Zeitpunkt mit einem Warteschlangenstil oder einem Skript wie diesem verwenden.

Ohne WordPress- wp_enqueue_style()Funktion

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

Mit wp_enqueue_style()Funktion

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

ODER

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Herr HK
quelle
1
Ich würde dies nicht empfehlen, ich bin mir ziemlich sicher, dass es das Caching der Version insgesamt zunichte machen wird.
Fabian von Ellerts