Не удается заставить дочернюю тему загружать последнюю версию style.css
Я использую дочернюю тему, настроенную правильно. Но просто не могу добиться, чтобы изменения в style.css дочерней темы отражались на сайте. Пробовал очищать кэш браузера миллион раз - не помогает!
Я создал шаблонные файлы дочерней темы, и они нормально переопределяют родительские.
Я заметил, что при просмотре исходного кода к таблице стилей добавляется номер версии вот так:- style.css?ver=3.9.1 хотя я не создавал никакой версии!
На другом моем сайте нет версионирования таблицы стилей, так почему оно добавляется автоматически, когда мне это не нужно?
Как заставить систему использовать самую свежую версию style.css дочерней темы без версионирования?
Вот URL моего сайта:- http://www.peterswebservices.co.uk/

В теме twentyfourteen попробуйте добавить это в дочернюю тему:
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 на другую при каждом изменении (поэтому это лучше подходит для рабочих окружений, где изменения вносятся не так часто).
Чтобы полностью удалить версию из скриптов и стилей, попробуйте это:
// удаление тега версии WP из скриптов и стилей, лучше для dev-окружений
// от 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 );
}

Добавление приведенной ниже функции в 'functions.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() только тратил бы ресурсы.
Источник: Комментарий Daniel от 22 октября 2014 к статье Предотвращение кэширования CSS: https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

Не видя сайт, мы не можем помочь диагностировать проблему, но часто бывает, что основной CSS темы имеет приоритет над CSS дочерней темы. Это можно переопределить, используя тег !important
, например:
#element {
color:#fff !important;
}
Тег !important
помечает этот CSS как приоритетный над любым другим CSS-файлом с такой же строкой.
Сообщите нам URL и помогло ли это.

Я не думаю, что проблема в !important, но вот мой URL:-http://www.peterswebservices.co.uk/ Также, когда я использую инспектор в Google Chrome и углубляюсь в CSS-файл, он показывает предыдущую версию без последних изменений.

У меня была такая же проблема, и оказалось, что у моего нового хостинга по умолчанию включено какое-то кэширование. Я зашел в панель управления и очистил кеш, после чего правильный файл style.css начал загружаться корректно.
Параметр ?ver=3.9.1 оказался ложным следом (по крайней мере в моем случае). После очистки кеша он по-прежнему отображается как ?ver=3.9.1, хотя такого параметра нет в моем css-файле, но все работает нормально.

У меня была такая же проблема, и я решил её другим способом, отличным от стандартного.
Сначала я нашёл файл, который нужно изменить:
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;
/**
* Фильтр для URI текущего файла стилей темы.
*
* @since 1.5.0
*
* @param string $stylesheet_uri URI файла стилей для текущей темы/дочерней темы.
* @param string $stylesheet_dir_uri URI директории стилей для текущей темы/дочерней темы.
*/
return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
