Nu pot încărca ultima versiune a fișierului style.css în tema copil

20 mai 2014, 15:54:33
Vizualizări: 18.6K
Voturi: 11

Folosesc o temă copil configurată corect. Dar pur și simplu nu reușesc să văd modificările din fișierul style.css al temei copil reflectate pe site. Am încercat să golesc cache-ul browserului de milioane de ori și nu funcționează!

Am creat fișiere de template pentru tema copil și acestea suprascriu cele din tema părinte fără probleme.

Am observat în codul sursă că se adaugă un număr de versiune la sfârșitul fișierului CSS astfel: style.css?ver=3.9.1 chiar dacă nu am creat nicio versiune!

Pe un alt site pe care l-am creat nu există versionare pentru fișierul CSS, așa că de ce se adaugă automat când nu vreau să fie setată.

Cum pot forța utilizarea celei mai recente versiuni a fișierului style.css al temei copil și să evit versionarea?

URL-ul site-ului meu: http://www.peterswebservices.co.uk/

3
Comentarii

Cache-ul browserului este cea mai evidentă posibilitate, dar și cache-ul serverului poate provoca același efect, la fel și "acceleratoarele" web pe care unele ISP-uri și site-uri independente le oferă.

s_ha_dum s_ha_dum
20 mai 2014 15:57:50

Partea cu versiunea pe care o vezi este doar versiunea curentă WordPress care este adăugată automat de WordPress. Nu este nevoie să-ți faci griji în legătură cu asta.

Pieter Goosen Pieter Goosen
20 mai 2014 16:00:56

@PieterGoosen Problema OP este legată de acest parametru de versiune care împiedică încărcarea CSS-ului curent. Foarte îngrijorător. Deci de ce există și cum îl putem elimina?

Ralf Ralf
30 aug. 2024 17:35:03
Toate răspunsurile la întrebare 5
1

În tema twentyfourteen, încercați să adăugați acest cod în tema copil:

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

Acest cod va înlocui fișierul original de stiluri cu versiunea dumneavoastră. Dacă utilizați o altă temă părinte, verificați eticheta originală wp_enqueue_style pentru style.css și duplicați acea etichetă în tema copil. Va trebui să schimbați versiunea 1.0.0 cu un alt număr de fiecare dată când faceți modificări (este mai bine pentru mediile de producție unde nu faceți modificări prea des).

Pentru a elimina complet versiunea din scripturi și stiluri, încercați acest cod:

// elimină tag-ul de versiune WP din scripturi și stiluri, ideal pentru medii de dezvoltare
// de 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 );
}
27 sept. 2014 05:46:23
Comentarii

Acest cod îmi distruge site-ul. Poate doar pentru versiunile mai vechi de WP?

Ralf Ralf
30 aug. 2024 17:37:11
0

Adăugarea funcției de mai jos în 'functions.php' al unui temă child pe care am folosit-o cu X m-a ajutat foarte mult într-o situație similară.

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

Doar nu uitați să eliminați acest lucru înainte de a lansa site-ul live.

De asemenea, țineți cont de funcțiile de caching ale furnizorului de servicii de hosting pentru a asigura că această actualizare are efect.

Conform autorului:

... este cea mai bună metodă de a include un fișier de stil pentru o temă child în WordPress, combinat cu filemtime() pentru a forța browserele să încarce noile versiuni ale fișierelor CSS. Nu am folosit filemtime() pentru parent-style deoarece nu îl modific niciodată, așadar filemtime() ar fi doar o risipă de resurse.

Sursa: Comentariu de Daniel din 22 octombrie 2014 la articolul Prevenirea Caching-ului CSS: https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

28 oct. 2015 19:35:38
1

Fără a vedea site-ul, nu putem ajuta la diagnosticarea problemei, dar o situație comună este atunci când CSS-ul temei principale are prioritate față de cel al temei copil. Poți suprascrie acest lucru folosind tag-ul !important, de exemplu:

#element {
 color:#fff !important;
}

Tag-ul important marchează acel CSS ca având prioritate față de orice alt fișier CSS care conține aceeași linie de cod.

Spune-ne URL-ul și dacă acest lucru te-a ajutat

20 mai 2014 15:59:22
Comentarii

Nu cred că !important este problema, dar iată URL-ul meu:-http://www.peterswebservices.co.uk/ De asemenea, când folosesc inspectorul în Google Chrome și ajung la fișierul CSS, acesta afișează o versiune anterioară fără modificările recente.

user1199360 user1199360
20 mai 2014 16:06:50
1

Am avut aceeași problemă și s-a dovedit a fi din cauza unui fel de caching activat implicit pe noul meu host. Am mers în panoul de control și am golit cache-ul, iar apoi a servit corect fișierul style.css corect.

Parametrul ?ver=3.9.1 s-a dovedit a fi o păcăleală (cel puțin în cazul meu). După ce am golit cache-ul, tot apare ?ver=3.9.1, care nu se găsește nicăieri în fișierul meu css, dar totul funcționează corect.

11 iul. 2014 09:16:42
Comentarii

Parametrul ?ver=3.9.1 este adăugat automat de WordPress. Acesta reprezintă versiunea curentă a WordPress și nu are nicio legătură cu tema ta :-)

Pieter Goosen Pieter Goosen
11 iul. 2014 09:52:11
0

Am avut aceeași problemă și am rezolvat-o într-un alt mod decât cel implicit.

Mai întâi am localizat fișierul pe care trebuie să-l modific:

wp-includes\theme.php

Există o funcție numită get_stylesheet_uri

Funcția mea arată astfel:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filtrează URI-ul fișierului de stiluri al temei curente.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     URI-ul fișierului de stiluri pentru tema/tema copil curentă.
     * @param string $stylesheet_dir_uri URI-ul directorului de stiluri pentru tema/tema copil curentă.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
7 sept. 2016 17:18:11