Nie można pobrać motywu potomnego, aby załadował najnowszą wersję style.css


9

Używam poprawnie skonfigurowanego motywu podrzędnego. Ale po prostu nie mogę uzyskać zmian w stylu motywu potomnego.css, które zostaną odzwierciedlone w witrynie. Próbowałem opróżnić pamięć podręczną przeglądarki milion razy i to nie działa!

Utworzyłem pliki szablonów podrzędnych, a one nadrzędne w porządku.

Zauważyłem w widoku, że umieszcza numer wersji na końcu arkusza stylów w następujący sposób: - style.css? Ver = 3.9.1, mimo że nie stworzyłem żadnej wersji!

W innej witrynie, którą utworzyłem, nie ma wersji arkusza stylów, więc dlaczego jest on wstawiany automatycznie, gdy nie chcę go ustawiać.

Jak zmusić go do używania najnowszej wersji pliku child.css, a nie wersji?

Oto mój adres strony: - http://www.peterswebservices.co.uk/


1
Buforowanie przeglądarki jest najbardziej oczywistą możliwością, ale buforowanie serwera może powodować ten sam efekt, podobnie jak „akceleratory” internetowe oferowane przez niektórych dostawców usług internetowych i niezależne witryny.
s_ha_dum

Część wersji, którą widzisz, jest tylko bieżącą wersją wordpress, która jest automatycznie dodawana przez wordpress. Nie musisz się tym martwić.
Pieter Goosen

Odpowiedzi:


4

W wieku dwudziestu czternastu spróbuj umieścić to w motywie dziecka:

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

Zastąpi to oryginalny arkusz stylów, ale twoją własną wersją. Jeśli używasz innej kompozycji nadrzędnej, spójrz na oryginalną etykietę wp_enqueue_style dla style.css i skopiuj tę etykietę w kompozycji podrzędnej. Będziesz musiał zmienić 1.0.0 na inną liczbę za każdym razem, gdy wprowadzasz zmiany (więc jest to lepsze w środowiskach produkcyjnych, w których nie wprowadza się tak często zmian).

Aby usunąć wersję ze skryptów i stylów razem, spróbuj tego:

// 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

Dodanie poniższej funkcji do „functions.php” motywu podrzędnego, którego użyłem z X, bardzo mi pomogło w podobnej sytuacji.

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

Tylko nie zapomnij usunąć tego przed uruchomieniem witryny na żywo.

Pamiętaj również o funkcjach buforowania dostawcy usług hostingowych, aby ten efekt aktualizacji.

Według autora :

... to najlepszy sposób na dołączenie arkusza stylów podrzędnych do WordPressa w połączeniu z filemtime (), aby zmusić przeglądarki do ładowania nowych wersji plików css. Nie użyłem filemtime () dla stylu nadrzędnego, ponieważ nigdy go nie dotykam, dlatego filemtime () marnowałby tylko zasoby.

Źródło : Komentarz Daniela z 22 października 2014 r. Do artykułu Zapobieganie buforowaniu CSS : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141


0

Nie widząc strony, nie możemy pomóc w zdiagnozowaniu problemu, ale częstym zjawiskiem jest główny motyw css ma pierwszeństwo przed dzieckiem css, możesz to zmienić, używając !importanttagu np.

#element {
 color:#fff !important;
}

Ważny znacznik oznacza, że ​​css ma wyższy priorytet niż jakikolwiek inny plik css z tą samą linią css

Daj nam znać adres URL, a jeśli to pomoże


Nie wydaje mi się! Ważny jest problem, ale oto mój adres URL: - peterswebservices.co.uk Także kiedy używam inspektora w Google Chrome i przechodzę do pliku css, pokazuje poprzednią wersję bez najnowszych zmian.
user1199360

0

Właśnie miałem ten sam problem i okazało się, że mój nowy host ma domyślnie włączone buforowanie. Poszedłem do panelu sterowania i opróżniłem pamięć podręczną, a następnie poprawnie podałem właściwy plik style.css.

Ver ver = 3.9.1 okazało się czerwonym śledziem (przynajmniej dla mnie). Po wyczyszczeniu pamięci podręcznej nadal pojawia się komunikat? Ver = 3.9.1, którego nigdzie nie ma w moim pliku css, ale wszystko działa poprawnie.


1
?ver=3.9.1Zostanie automatycznie dodany przez WordPressa. To jest aktualna wersja wordpress i nie ma nic wspólnego z twoim motywem :-)
Pieter Goosen

0

Miałem ten sam problem i naprawiłem go w inny sposób niż domyślny.

Najpierw zlokalizowałem plik, który muszę zmienić:

wp-includes\theme.php

Istnieje funkcja o nazwie get_stylesheet_uri

Moja funkcja wygląda następująco:

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 );
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.