Неможливо отримати дочірню тему для завантаження останньої версії style.css


9

Я правильно користуюся дочірною темою. Але я просто не можу отримати зміни у темі Child style style.css для відображення на сайті. Спробували очистити кеш браузера мільйон разів, і це не працює!

Я створив дочірні файли шаблонів, і вони добре перекривають батьківські файли.

Я помітив з огляду на те, що він додає номер версії на кінець аркуша стилів, як це: - style.css? Ver = 3.9.1, хоча я не створив версії!

На іншому створеному нами сайті немає версії таблиці стилів, тому чому він автоматично вводиться, коли я не хочу його встановлювати.

Як змусити його використовувати найновішу версію файлу Child style.css, а не її версію?

Ось мій URL-адреса сайту: - http://www.peterswebservices.co.uk/


1
Кешування браузера є найбільш очевидною можливістю, але кешування серверів може викликати той же ефект, і тому веб-"прискорювачі", які пропонують деякі Інтернет-провайдери та незалежні сайти.
s_ha_dum

Частина версії, яку ви бачите, - це лише поточна версія WordPress, яка автоматично додається wordpress. Про це не потрібно хвилюватися.
Пітер Гусен

Відповіді:


4

У двадцять чотирнадцять спробуйте вкласти це у свою дитячу тему:

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

Це замінить оригінальну таблицю стилів, але вашу власну версію. Якщо ви використовуєте іншу батьківську тему, перегляньте оригінальну мітку wp_enqueue_style для style.css та скопіюйте цю мітку в межах дочірньої теми. Вам доведеться змінювати 1.0.0 на інше число кожного разу, коли ви вносите зміни (тому краще для виробничих середовищ, де ви не вносите зміни часто).

Щоб видалити версію зі скриптів та стилів, усі разом спробуйте:

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

Додавання нижченаведеної функції до 'функции.php' дочірньої теми, яку я використав із X, дуже допомогло мені в подібній ситуації.

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

Просто не забудьте видалити це перед запуском веб-сайту в прямому ефірі.

Також проти кешування особливостей вашого хостинг-провайдера послуг, щоб зробити цей ефект поновлення.

За словами автора :

... це найкращий спосіб включити таблицю стилів дочірньої теми в WordPress у поєднанні з filemtime (), щоб змусити браузери завантажувати нові версії css-файлів. Я не використовував filemtime () для батьківського стилю, оскільки ніколи його не торкаюся, і тому filemtime () буде витрачати лише ресурси.

Джерело : Коментар Даніеля від 22 жовтня 2014 р. До статті Запобігання кешування CSS : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141


0

Не бачивши сайт, ми не можемо допомогти діагностувати проблему, але поширене явище - головна тема, у якій css має пріоритет над дочірнім css, ви можете перекрити це за допомогою !importantтегу, наприклад

#element {
 color:#fff !important;
}

Важливий тег позначає цей css як пріоритетний перед будь-яким іншим файлом css з тим самим рядком css

Повідомте нам URL-адресу, і якщо це допоможе


Я не думаю, що важлива проблема, але ось мій URL: - peterswebservices.co.uk Також, коли я використовую інспектор в Google Chrome і переходжу до файлу css, показуючи попередню версію без останніх змін.
користувач1199360

0

У мене просто була така ж проблема, і виявився, що мій новий хост, який кеширований, за замовчуванням увімкнено кешування. Я зайшов до своєї панелі керування і промив кеш, і він потім правильно подав потрібний файл style.css.

? Ver = 3.9.1 виявився червоним оселедцем (принаймні для мене). Після того, як я очистив кеш, він все ще пише? Ver = 3.9.1, який ніде в моєму файлі css не знайдено, але все працює нормально.


1
Значення ?ver=3.9.1автоматично додається за допомогою wordpress. Це поточна версія wordpress і не має нічого спільного з вашою темою :-)
Pieter Goosen

0

У мене була така ж проблема, і я виправив її іншим способом, ніж за замовчуванням.

Спочатку я знайшов файл, який мені потрібно змінити:

wp-includes\theme.php

Існує функція, яка називається get_stylesheet_uri

Моя функція виглядає так:

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 );
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.