• Решено IgorIvanov

    (@igorivanov)


    Имею дочернюю тему (выбрана и активирована), имею в ней файл style.css настроенный, вроде бы, по всем правилам (@import url и т.д.)… По идее стили, прописанные в моем новом файле должны загружаться после импортированных из файла style.css основной темы и, соответственно, перекрывать их (так и было раньше)… Но, почему-то, после переноса сайта и обновления wordpress этого не происходит. Т.е. когда я нажимаю в браузере «Просмотр кода элемента», вижу что стили эти есть — но настройки главной темы перекрываю настройки дочерней (приходится в дочерней теме к свойствам дописывать !important). Как такое может быть и в чем причина?
    Заранее спасибо.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Модератор Юрій

    (@yube)

    Покажите сайт и ткните пальцем в проблемные определения.

    вот ссылка на скриншот (там и адрес сайта и собственно сама проблема) webfolder.ru/339617

    Модератор Юрій

    (@yube)

    float: center; — это как? 🙂

    Проблемное правило — text-align, да?

    Я думаю, что причина в том, что сначала подключается
    /wp-content/themes/dazzling-child/style.css
    а следом за ним
    /wp-content/themes/dazzling/style.css
    т.е. стиль родителя грузится дважды: один раз инклюдом в css детки, второй раз — явно в head. И этот второй явно лишний.

    Осталось выяснить — какого черта?

    float: center; — это как? 🙂

    это перископ 😀

    Модератор Юрій

    (@yube)

    Bullshit! Читаем Кодекс в оригинале

    Note that the previous method was to import the parent theme stylesheet using @import: this is no longer best practice. The correct method of enqueuing the parent theme stylesheet is to add a wp_enqueue_scripts action and use wp_enqueue_style() in your child theme’s functions.php.

    https://codex.wordpress.org/Child_Themes

    «float:center;» — это понятно, что чушь… ))
    а про style.css — насколько я понимаю, мой дочерний style.css СНАЧАЛА импортирует style.css из /wp-content/themes/dazzling/style.css (стоит функция импорта), а потом дописывает свои свойства — но это только теоретически… Я пробовал из дочернего файла style.css удалить функцию импорта (по идее стили должны были вообще исчезнуть, т.к. в дочернем style.css пока мало что написано) — но все стили остались… Зачем он их грузит еще раз?! Это не может быть связано с обновлением wordpress до 4.2.1?

    Юрий, спасибо. Я понял что @import теперь является не лучшим методом.. Но, не совсем понял (вернее совсем не понял) что нужно написать в functions.php

    Модератор Юрій

    (@yube)

    пробовал из дочернего файла style.css удалить функцию импорта (по идее стили должны были вообще исчезнуть, т.к. в дочернем style.css пока мало что написано) — но все стили остались…

    Ну да. И мало того, что остались, они еще и загружаются после дочерних.

    Зачем он их грузит еще раз?!

    Затем, что «no longer best practice» надо понимать как «больше никогда так не делай!«. А родительские стили как ни крути, а все-таки нужны. Остается вопрос о порядке загрузки стилей.

    Это не может быть связано с обновлением wordpress до 4.2.1?

    Склоняюсь к мысли, что таки да. Но надо проверить на более старых версиях движка. Вы с какой обновлялись?

    Модератор Юрій

    (@yube)

    Но, не совсем понял (вернее совсем не понял) что нужно написать в functions.php

    Я тоже 🙂

    добавил в functions.php дочерней темы
    add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
    function theme_enqueue_styles() {
    wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );

    }
    вроде заработало 🙂

    Модератор Юрій

    (@yube)

    Вот и славно 🙂

    просто интересно, теперь у всех кто делал дочернии темы по прежней инструкции настройки стилей слетят при обновлении? ) А если сайт сделан на заказ, и конечный владелец вообще не представляет, что да как в этом вордпрессе устроено… (

    Модератор Юрій

    (@yube)

    Мне тоже интересно. Скорей всего, зависит от того, как в родительской Теме подключен style.css: прямым текстом в header.php, через wp_enqueue_style() в functions.php или еще более заморочистым способом.

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