Поддержка Проблемы и решения Родительские и дочерние стили

  • Добрый вечер. Скорее всего спрошу глупость, но всё-таки спрошу. Есть некая родительская тема. В ней в файле style.css имеется только заголовочная часть. Собственные стили родительской темы находятся в отдельных файлах в папке css здесь же, в родительской теме.

    Если в дочерней теме я подключаю стили родительской темы в functions.php так:

    add_action( 'wp_enqueue_scripts', 'my_child_theme_scripts' );
    function my_child_theme_scripts() {
    	wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    }

    То стили не подключаются, так как их в этом файле попросту нет. Если же я прописываю путь к реальному файлу стилей родительской темы так:

    add_action( 'wp_enqueue_scripts', 'my_child_theme_scripts' );
    function my_child_theme_scripts() {
    	wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/css/theme.min.css' );
    }

    То родительские стили подключаются, но в дочерней теме стили тоже ищутся по такому же пути и имени файла, как и в родительской. А в дочерней теме такой папки и такой структуры не предполагается. Достаточно тех стилей, что есть в style.css в главной папке домашней темы. Как и родительские стили подключить, и в дочерней теме огород не городить?

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Как и родительские стили подключить, и в дочерней теме огород не городить?

    Забыть все что вы тут нагородили. Удалить свою дочернюю тему и создать её заново, с чистого листа с помощью плагина и не морочить голову ни себе ни другим людям. https://ru.wordpress.org/plugins/child-theme-configurator/

    • Ответ изменён 4 года, 3 месяца назад пользователем O.

    Spectrum_Admin, уже не в первый раз вижу рекомендацию использовать данный плагин. Зачем? Если покамест дочерняя тема состоит всего из двух файлов: style.css и functions.php. Создать эти два файла и оформить их можно и «на коленке» — в текстовом редакторе. Для чего тащить целый плагин, который не вполне понятно как работает?

    При всём уважении, пока это больше напоминает мне следующее: я прошу вас научить меня умножать в столбик, а вы говорите: брось, пользуйся калькулятором, он быстрее считает.

    Как без плагина в дочерней теме подключить стили родительской темы так:
    <link rel=’stylesheet’ id=’parent-style-css’ href=’domain.com/wp-content/themes/parenttheme/css/theme.min.css’ type=’text/css’ media=’all’ />

    А дочерние стили грузить при этом из файла:
    <link rel=’stylesheet’ id=’child-styles-css’ href=’domain.com/wp-content/themes/childtheme/style.css’ type=’text/css’ media=’all’ />

    • Ответ изменён 4 года, 3 месяца назад пользователем Quazimorda.
    Модератор Юрий

    (@yube)

    Как без плагина в дочерней теме подключить стили родительской темы так:

    Универсального решения нет. Всё зависит от того, как стили подключаются в родительской Теме. И вариантов, как водится, более одного.

    Также стоит иметь в виду, что существуют «бездетные» Темы, авторы которых совершенно не подумали о том, что кто-то будет пытаться сделать дочку его творению, а потому создание дочерней обычно заканчивается форком (созданием копии и ее правкой).

    Юрий, спасибо за ответ. Как раз копаю как подключаются стили в родительской теме. В целом, стили её подключаются в дочерней теме, значит создание деток предполагалось, но вот с остальным пока со скрипом. )

    уже не в первый раз вижу рекомендацию использовать данный плагин. Зачем?

    Затем чтобы не изобретать велосипеды и не тратить на ерунду драгоценное время.

    А то вы где-то вычитали про «умножение в столбик» уже неактуально. Точнее устарело. Сейчас процесс создания дочерних тем значительно сложнее, в чём вы уже убедились. Так что лучше доверить это дело профессионалу в лице плагина.

    Но если вы любите создавать себе трудности чтобы потом их героически преодолевать — флаг вам в руки.

    А если у вас к тому же ещё плагинобоязнь — совсем плохо. Но эта болезнь излечима.

    Зачем?

    Он поможет перенести настройки родителя в дочку (если они были сделаны до дочки), но что для Вас важнее сейчас — корректно создаст дочку именно к использованной Вами теме.
    В тч и подключит все нужные стили, а не только основной.
    Вот попробуйте и поймёте. Он ничего не поломает. После создания дочки его можно удалять.

    Spectrum_Admin, боязни никакой нет, плагины я использую, конечно. И всё-таки хотелось бы разобраться как это делать самому. Впрочем, плагин опробую. Посмотрим, сколько моего времени он сэкономит. ))

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

    (@yube)

    В целом, стили её подключаются в дочерней теме, значит создание деток предполагалось

    Вот не факт.

    Меня настораживает вот это:

    в дочерней теме стили тоже ищутся по такому же пути и имени файла

    Такое может быть, если в родительской Теме в function.php (или инклюдах) используется get_stylesheet_directory_uri() вместо get_template_directory_uri().

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

    (@yube)

    Попробуйте в дочерней подключать родительские стиль css/theme.min.css, а дочерний css/theme.min.css (придется его создать) подключит родительская. style.css своей дочерней можно не подключать к страницам, оставив в нем только заголовок Темы, а по назначению использовать дочерний css/theme.min.css.

    Это-то, Юрий, я и называл городить огород. Ну, то есть создавать в дочерней теме папку css и далее по тексту. Но пока либо так, либо и в самом деле разбираться с плагином, который, к слову, не очень пока экономит мне время. ))

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

    (@yube)

    Это-то, Юрий, я и называл городить огород.

    Та разве ж это огород? Так, маленькая грядочка 🙂 Вот когда родительская Тема подключает шаблоны в обход механизмов WP прямым include из-под себя, вот тогда начинается огород.

    Та разве ж это огород? Так, маленькая грядочка

    Вот прямо порадовали сейчас. 🙂

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Родительские и дочерние стили» закрыта для новых ответов.