Поддержка Проблемы и решения Сайт на дочерней теме не реагирует на изменения в style.css

  • Здравствуйте!
    Сделал сайт на Денвере. Тема сайта — дочка Twenty Sixteen. Пока в дочерней теме только файл «style.css» — стили переопределяются нормально. Стоит скопировать в мою тему хоть один файл «php» из родительской темы (например, header.php) — сайт перестаёт реагировать на любые изменения в style.css.
    Более того, откатить переопределения стилей, сделанные до копирования файла php, тоже не удаётся.
    В чём причина? Везде пишут, что копировать файлы шаблона из родительской темы в дочернюю можно, что при этом файлы шаблона дочерней темы заменяют собой одноименные файлы родительской темы.
    Может быть, что-то не то с денвером? Или тема Twenty Sixteen какая-то особенная?
    Теперь я перенёс сайт на beget, но копировать файлы шаблона на хостинге я пока не решаюсь, боюсь поломать свой сайт.
    Доводилось ли кому-нибудь сталкиваться с такой ерундой?

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Пока в дочерней теме только файл «style.css»

    Удалите эту дочку и создайте с пом плагина https://ru.wordpress.org/plugins/child-theme-configurator/
    (если вносили измени в стили — забекапте файл, потом перенесёте их в созданы плагином)

    В чём причина?

    Возможно в кешировании, отсюда не видно.
    Используйте CRTL+F5 после изменения стилей.

    Может быть, что-то не то с денвером?

    Вообще с ним может быть всё что угодно, но в данной проблеме он вряд ли виноват.

    Используйте CTRL+F5 после изменения стилей

    Простите, а это — в каком редакторе. Я пользуюсь дримвивером.

    отсюда не видно

    Ссылка на мой сайт: http://kontent-menedzher.ru/ — Резюме контент-менеджера сайтов

    возможно в кешировании

    Вы имеете в виду кэширование браузером?

    Удалите эту дочку

    Простите, но эта дочка создана по рекомендациям wordpress.org. Она состоит просто из папки, в которой лежит style.css. А как работает плагин child-theme-configurator ?

    Простите, а это — в каком редакторе.

    Это в браузере.

    Я пользуюсь дримвивером.

    Такой кузнец монстр не нужен. Лучше пользуйтесь правильными блокнотами — akelpad, notepad++ и тп. С кодировкой UTF8.

    Вы имеете в виду кэширование браузером?

    Браузером в тч. Есть много др кешей.

    Простите, но эта дочка создана по рекомендациям wordpress.org.

    Русский перевод этого документа устарел в отношении способа создания дочки.
    См оригинал:

    In the past, the common method was to import the parent theme stylesheet using @import; this is no longer the recommended practice, as it increases the amount of time it takes style sheets to load. Plus it is possible for the parent stylesheet to get included twice.

    А как работает плагин child-theme-configurator ?

    Позволяет не только просто и правильно создать дочку, но и скопировать настройки родительский темы, если таковые были сделаны (правда, с нек. темами это не работает или частично).

    Стилевой файл дочерней темы грузится раньше https://yadi.sk/i/1yYs3J1R3VUiNf
    Поэтому его перебивают стили родительской — ведь приоритет (если специфичность — т.н. «вес» одинаков) у тех стилей, что грузятся позже.
    Вариант один и самый правильный — зарегистрировать дочернюю тему (стили) правильно — по ссылке, что привел модератор

    По указанной ссылке нашёл следующий самый полный пример:
    <?php
    add_action( ‘wp_enqueue_scripts’, ‘my_theme_enqueue_styles’ );
    function my_theme_enqueue_styles() {

    $parent_style = ‘parent-style’; // This is ‘twentyfifteen-style’ for the Twenty Fifteen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . ‘/style.css’ );
    wp_enqueue_style( ‘child-style’,
    get_stylesheet_directory_uri() . ‘/style.css’,
    array( $parent_style ),
    wp_get_theme()->get(‘Version’)
    );
    }
    ?>
    Насколько я понял, вместо ‘parent-style’ мне надо написать ‘twentysixteen-style’ (для родительской темы Twenty Sixteen)
    ‘child-style’ можно так и оставить
    В шапке дочернего style.css обязательно надо задать какую-то версию (произвольный набор цифр с точками, например, 1.0)
    Всё правильно?

    Если используется add_action( ‘wp_enqueue_scripts’, ‘my_theme_enqueue_styles’ );
    Значит, где-то должно быть do_action( ‘wp_enqueue_scripts’ );
    Интересно, где?

    Модератор Yuri

    (@yube)

    Значит, где-то должно быть do_action( ‘wp_enqueue_scripts’ );
    Интересно, где?

    В движке, разумеется. В /wp-includes/script-loader.php.

    Смущают два момента
    1. В файле «functions.php» темы Twenty Sixteen стили подключаются так:
    wp_enqueue_style( ‘twentysixteen-style’, get_stylesheet_uri() );
    Таким образом, что же, подключаются все файлы css в корне папки активной темы, сколько бы их там ни было, я правильно понял?

    2. В строчке подключения стилей дочерней темы, действительно, нужно писать ‘child-style’ ? Именно так и никак иначе? Или вместо этого в каждом случае нужно подставлять какое-то своё имя стиля?

    Ладно, в style.css убрал @import
    Добавил в тему functions.php с таким кодом:

    <?php
    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
    function my_theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    	wp_enqueue_style( 'child-style',
            get_stylesheet_directory_uri() . '/style.css',
            array( 'parent-style' ),
            wp_get_theme()->get('Version')
        );
    }
    ?>

    В денвере работает отлично.
    В хостинге после копирования файлов header.php, footer.php, index.php после правки style.css соответствующих изменений на сайте при нажатии на F5 не видно. Видно только при нажатии CTRL+F5
    Не знаю, можно ли считать вопрос решённым. С грехом пополам, наверное…

    • Ответ изменён 5 лет, 11 месяцев назад пользователем Denis Yanchevskiy. Причина: оформление кода
    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Видно только при нажатии CTRL+F5

    Это нормальное поведение. Браузер кеширует файлы.
    Версию темы меняли после изменения файла?

    Также, можно автоматизировать процесс обновления версий файлов.

    Версию темы меняли после изменения файла?

    Сменил. Надеялся почему-то, что поможет. Но всё осталось по-прежнему. Согласен, дело, очевидно, в кеше. А в денвере — отлично всё. Ладно, что ж делать, — пушшай так остаётся.

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Сайт на дочерней теме не реагирует на изменения в style.css» закрыта для новых ответов.