Untergeordnetes Thema kann nicht zum Laden der neuesten Version von style.css verwendet werden

9

Ich verwende ein korrekt eingerichtetes untergeordnetes Thema. Aber ich kann einfach keine Änderungen im untergeordneten Thema style.css erhalten, die sich auf der Site widerspiegeln. Ich habe versucht, den Browser-Cache millionenfach zu leeren, und es funktioniert nicht!

Ich habe untergeordnete Vorlagendateien erstellt und sie überschreiben die übergeordneten.

Ich habe festgestellt, dass in View Sourse eine Versionsnummer am Ende des Stylesheets wie folgt steht: - style.css? Ver = 3.9.1, obwohl ich keine Version erstellt habe!

Auf einer anderen Site, die ich erstellt habe, gibt es keine Versionierung des Stylesheets. Warum wird es also automatisch eingefügt, wenn ich nicht möchte, dass es festgelegt wird?

Wie kann ich erzwingen, dass die aktuellste Version der Child Style.css-Datei verwendet wird und nicht die Version?

Hier ist meine Website-URL: - http://www.peterswebservices.co.uk/

user1199360
quelle
1
Browser-Caching ist die naheliegendste Möglichkeit, aber Server-Caching kann den gleichen Effekt haben, ebenso wie Web- "Beschleuniger", die einige ISPs und unabhängige Websites anbieten.
s_ha_dum
Der Versionsteil, den Sie sehen, ist nur die aktuelle WordPress-Version, die automatisch von WordPress hinzugefügt wird. Darüber brauchen Sie sich keine Sorgen zu machen.
Pieter Goosen

Antworten:

4

Versuchen Sie in vierundzwanzig Jahren, dies in Ihr Kinderthema aufzunehmen:

function add_require_scripts_files() {
 wp_enqueue_style('twentyfourteen-style', get_stylesheet_directory_uri().'/style.css', array(), '1.0.0', "all");        
}
add_action( 'wp_enqueue_scripts', 'add_require_scripts_files' );

Dies ersetzt das ursprüngliche Stylesheet, jedoch durch Ihre eigene Version. Wenn Sie ein anderes übergeordnetes Thema verwenden, überprüfen Sie die ursprüngliche Bezeichnung wp_enqueue_style für style.css und duplizieren Sie diese Bezeichnung in Ihrem untergeordneten Thema. Sie müssen 1.0.0 bei jeder Änderung auf eine andere Zahl ändern (daher ist es besser für Produktionsumgebungen, in denen Sie nicht so oft Änderungen vornehmen).

Gehen Sie folgendermaßen vor, um die Version aus Skripten und Stilen zu entfernen:

// remove WP version tag from scripts and styles, best for dev environments
// by Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = '?ver='.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}
whoaitsaimz
quelle
4

Das Hinzufügen der folgenden Funktion zur 'functions.php' eines untergeordneten Themas, das ich mit X verwendet habe, hat mir in der ähnlichen Situation sehr geholfen.

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), NULL, filemtime( get_stylesheet_directory() . '/style.css' ) );
}

Nur vergessen Sie nicht , diese zu entfernen , bevor Ihre Website Live starten.

Beachten Sie auch die Caching-Funktionen Ihres Hosting-Dienstanbieters, um diesen Update-Effekt zu erzielen.

Laut Autor :

... es ist der beste Weg, ein Childtheme-Stylesheet in WordPress in Kombination mit filemtime () aufzunehmen, um Browser zu zwingen, neue Versionen der CSS-Dateien zu laden. Ich habe filemtime () nicht für den übergeordneten Stil verwendet, da ich ihn nie berühre, und daher würde filemtime () nur Ressourcen verschwenden.

Quelle : Kommentar von Daniel vom 22. Oktober 2014 zum Artikel Verhindern von CSS-Caching : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

Bubencode
quelle
0

Ohne die Site zu sehen, können wir nicht helfen, das Problem zu diagnostizieren, aber ein häufiges Ereignis ist, dass das Hauptthema CSS Vorrang vor dem untergeordneten CSS hat. Sie können dies überschreiben, indem Sie das !importantTag verwenden, z

#element {
 color:#fff !important;
}

Das wichtige Tag markiert dieses CSS als Priorität gegenüber jeder anderen CSS-Datei mit derselben CSS-Zeile

Lassen Sie uns die URL wissen und ob dies hilft

Gareth Gillman
quelle
Ich denke nicht! Wichtig ist das Problem, aber hier ist meine URL: - peterswebservices.co.uk Auch wenn ich den Inspektor in Google Chrome verwende und einen Drilldown zur CSS-Datei durchführe, wird eine frühere Version ohne die neuesten Änderungen angezeigt .
user1199360
0

Ich hatte gerade das gleiche Problem und es stellte sich heraus, dass mein neuer Host standardmäßig eine Art Caching aktiviert hatte. Ich ging zu meinem Control Panel und leerte den Cache. Dann wurde die richtige style.css-Datei korrekt bereitgestellt.

Die? Ver = 3.9.1 stellte sich als roter Hering heraus (zumindest für mich). Nachdem ich den Cache geleert habe, heißt es immer noch? Ver = 3.9.1, was nirgendwo in meiner CSS-Datei zu finden ist, aber alles funktioniert einwandfrei.

Kit Johnson
quelle
1
Das ?ver=3.9.1wird automatisch per WordPress hinzugefügt. Dies ist die aktuelle Version von WordPress und hat nichts mit Ihrem Thema zu tun :-)
Pieter Goosen
0

Ich hatte das gleiche Problem und habe es auf eine andere Weise als die Standardeinstellung behoben.

Zuerst habe ich die Datei gefunden, die ich ändern muss:

wp-includes\theme.php

Es gibt eine Funktion namens get_stylesheet_uri

Meine Funktion sieht so aus:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
GorgE_MirO
quelle