web-dev-qa-db-de.com

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

Ich verwende ein korrekt eingerichtetes Child-Thema. Es ist mir jedoch nicht möglich, Änderungen an der Datei "Child theme style.css" vorzunehmen, die auf der Website angezeigt werden. Hat versucht, den Browser-Cache millionenfach zu leeren, und es funktioniert nicht!

Ich habe untergeordnete Vorlagendateien erstellt, die die übergeordneten überschreiben.

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

Auf einer anderen von mir erstellten Site gibt es keine Versionierung des Stylesheets. Warum wird es also automatisch eingefügt, wenn ich es nicht festlegen möchte?.

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/

9
user1199360

Versuchen Sie in vierundzwanzig, dies in Ihr Kinderthema einzufügen:

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' );

Dadurch wird das ursprüngliche Stylesheet ersetzt, 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 häufig Änderungen vornehmen).

Versuchen Sie Folgendes, um die Version aus allen 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 );
}
4
whoaitsaimz

Das Hinzufügen der folgenden Funktion in die 'functions.php' eines Child-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' ) );
}

Einfach nicht vergessen , um dies zu entfernen, bevor Sie Ihre Website live starten.

Beachten Sie auch die Caching-Funktionen Ihres Hosting-Anbieters, damit dieses Update wirksam wird.

Lt. Verfasser:

... es ist die beste Möglichkeit, ein Childtheme-Stylesheet in WordPress zusammen mit filemtime () einzufügen, um den Browser zum Laden neuer Versionen der CSS-Dateien zu zwingen. Ich habe filemtime () nicht für den übergeordneten Stil verwendet, da ich es nie anfasse, und daher würde filemtime () nur Ressourcen verschwenden.

Source : Kommentar von Daniel ab 22. Oktober 2014 zum Artikel CSS-Caching verhindern : https: // css-tricks. de/snippets/wordpress/css-caching verhindern/# comment-1586141

3
bubencode

Ohne die Site zu sehen, können wir nicht helfen, das Problem zu diagnostizieren, aber ein häufiges Vorkommen ist das Hauptthema, bei dem CSS Vorrang vor dem untergeordneten CSS hat. Sie können dies mit dem Tag !important außer Kraft setzen, z.

#element {
 color:#fff !important;
}

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

Lassen Sie uns die URL wissen und ob dies hilft

0
Gareth Gillman

Ich hatte nur das gleiche Problem und es stellte sich heraus, dass mein neuer Host standardmäßig eine Art Caching aktiviert hat. Ich ging zu meinem Kontrollfeld und leerte den Cache, und es lieferte dann die richtige style.css-Datei.

Das? 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 in meiner CSS-Datei nirgends zu finden ist, aber alles funktioniert einwandfrei.

0
Kit Johnson

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

Zuerst habe ich die zu ändernde Datei gefunden:

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 );
}
0
GorgE_MirO