Ich betreue a WordPress-Site, die das GeneratePress-Theme verwendet. Zur Erweiterung wurde eine Child-Theme-Lösung verwendet. Es ist bereits ein ziemlich entwickeltes untergeordnetes Thema (um dramatische Lösungen zu vermeiden).
Für eine Weile Ich hatte Probleme mit dem CSS-Cache Jedes Mal, wenn ich das CSS aktualisiere. style.css untergeordnete Stylesheets liefern die Cache-Version statt der modifizierten.
Ich glaube das Das GeneratePress-Design lädt die übergeordnete style.css + untergeordnete style.css, falls vorhanden.
generatepress/functions.php
// Enqueue our CSS.
wp_enqueue_style( 'generate-style-grid', get_template_directory_uri() . "/css/unsemantic-grid{$suffix}.css", false, GENERATE_VERSION, 'all' );
wp_enqueue_style( 'generate-style', get_template_directory_uri() . '/style.css', array( 'generate-style-grid' ), GENERATE_VERSION, 'all' );
wp_enqueue_style( 'generate-mobile-style', get_template_directory_uri() . "/css/mobile{$suffix}.css", array( 'generate-style' ), GENERATE_VERSION, 'all' );
wp_add_inline_style( 'generate-style', generate_base_css() );
// Add the child theme CSS if child theme is active.
if ( is_child_theme() )
wp_enqueue_style( 'generate-child', get_stylesheet_uri(), true, filemtime( get_stylesheet_directory() . '/style.css' ), 'all' );
Wenn ich dieses Stück Code lese … scheint es so Wenn ein untergeordnetes Thema erkannt wird, sollte es bereits das Cache-Busting durchführen ABER … für mich nicht. Ich erhalte keine URL mit dem Filemtime-Ergebnis als Versionsparameter.
Mein Child-Theme functions.php stellt keine ‘style.css’ in die Warteschlange. Trotzdem wird es nach der übergeordneten style.css geladen.
VERSUCH 1
Ich habe den Abschnitt zum Hinzufügen von CSS aus der generatepress gelesen https://docs.generatepress.com/article/adding-css/.
Ich sehe nicht, wie ich die untergeordnete style.css-Datei zwischenspeichern kann.
VERSUCH 2
Meine ersten Versuche, das Problem zu lösen, basieren auf Einreihen des Stylesheets, wenn wp_enqueue_scripts ausgelöst wird.
function theme_css(){
wp_enqueue_style( 'my-theme-style', get_stylesheet_directory_uri().'/style.css', 'generate-style', '1.1', 'all');
}
add_action( 'wp_enqueue_scripts', 'theme_css' );
Ich bezog mich auf Generieren-Stil da es mir scheint, dass es sich um den übergeordneten Standardstil handelt (untergeordnete style.css würden nach der übergeordneten style.css geladen). Sie können dies im vorherigen Code-Snippet sehen. Es funktioniert nicht für mich. Das Child-Theme würde zuerst geladen und später das Stylesheet des Parent-Themes. Das ist bedauerlich und bricht das CSS. Die Reihenfolge sollte umgekehrt sein (übergeordnete style.css zuerst und untergeordnete style.css später). Wie gesagt, je nach Generieren-Stil hilft nicht.
VERSUCH 3
Erstellen Sie das Stylesheet mit einem anderen Dateinamen. Generatepress beschwert sich, da es eine Stylesheet-Datei style.css benötigt, wenn child_theme erkannt wird. Ich könnte ein untergeordnetes Thema mit einer leeren style.css und dem neuen Stylesheet haben. Das Problem wäre, dass der style.css-Cache für wiederkehrende Benutzer bereitgestellt wird.
Ich bin irgendwie neu in WordPress, also kenne ich keinen anderen Mechanismus, der das lösen könnte. Vielleicht gibt es eine einfachere Lösung, die funktionieren könnte?
Haben Sie versucht, Ihren Browser-Cache zu leeren, um Ihre Änderungen zu sehen? Das ist normalerweise meine erste Anlaufstelle für solche CSS-Caching-Probleme.
– Nathanael Flick
3. Oktober 2017 um 7:13 Uhr
Ja, das bereinigt meinen Cache, aber nicht den Cache der Hunderte von Leuten, die die Seite täglich besuchen.
– kitimenpolku
3. Oktober 2017 um 7:16 Uhr
Führen Sie ein Caching-Plugin auf der Website aus? Wenn Sie Autoptimize verwenden, wie es die Themendokumentation hier vorschlägt, generatepress.com/fastest-wordpress-themedann müssen Sie den Cache löschen und Ihre Benutzer sehen die Änderungen.
– Nathanael Flick
3. Oktober 2017 um 7:17 Uhr
Ja, in der Produktion automatisch optimieren. Es kommt mit einem alphanumerischen Schwanz für die zufällige Versionierung. Ich weiß, worauf du hinauswillst. Durch das Löschen dieses Caches sollte ein neuer generiert werden. Vielen Dank
– kitimenpolku
3. Oktober 2017 um 7:20 Uhr
Gern geschehen. 🙂 Sie können es aus dem Plugin selbst löschen: Melden Sie sich bei wp-admin an und gehen Sie zu den Autoptimize-Plugin-Einstellungen, um den Cache zu löschen, und es wird das tun und einen neuen Cache für Sie starten.
– Nathanael Flick
3. Oktober 2017 um 7:24 Uhr