Поддержка Темы и шаблоны Стили и шаблоны дочерней темы

  • Здравствуйте!

    С помощью плагина Child Theme Configurator создал дочернюю тему с пустым style.css, настроил в ней дополнительные стили и внедрил в нее свой шаблон страницы со своим хидером «header_vs», шаблоном страницы «page_vs» и стилями «style_vs».

    Пока не внедрил свой шаблон, стили темы, видимо подхватывались из родительской темы. После внедрения своего шаблона, стили базового шаблона страницы слетели.

    Из положения вышел, скопировав стили родительской темы в файл ctyle.css дочерней темы и header.php.

    Вопросы:
    1. Это правильный подход или существуют более изящные решения?
    2. Имеет ли смысл скопировать в дочернюю тему код из файла functions.php родительской темы?

    Спасибо.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • настроил в ней дополнительные стили

    Дополнительные стили вставляются в визуальном настройщике в соответствующий раздел, который есть во всех темах.
    http://joxi.ru/L2164k8t8oGBEA
    Это и будет «более изящным решением». Но это не отменяет создание дочерней темы, если производятся другие правки в шаблонах темы

    1. Это правильный подход или существуют более изящные решения?

    Нет. Родителя вообще не трогают (при обновлении слетит). Всё делается только в дочке. Для этого собсно и существует механизм дочерних тем

    Имеет ли смысл скопировать в дочернюю тему код из файла functions.php родительской темы?

    Ни в коем случае!
    Можно копировать только те функции, которые хотите изменить + которые имеют проверку на существование (if ( ! function_exists()). Это касается любых функций родителя, а не только в functions.php

    Имеет ли смысл скопировать в дочернюю тему код из файла functions.php родительской темы?

    Имеет смысл вообще никогда не лезть с правками в этот файл, а использовать более цивилизованные, надежные, безопасные и «изящные» решения для внесения изменений/дополнений в функционал сайта путем применения плагинов типа этого (ИМХО лучший в своем роде) https://ru.wordpress.org/plugins/code-snippets/

    Таким образом все ваши правки functions.php не будут зависеть от обновлений темы и даже смены темы. Кроме того это безопасно — при ошибке в добавляемом сниппете он просто не включится и не «положит сайт»

    (ИМХО лучший в своем роде)

    «в своем роде» лучше те, которые создают физ. файл и вносят туда код. Такие есть. (но по большому счёту смысла нет, тк можно файл можно править и так. Причём делать это нужно не через админку.)
    А такой как вы показали — они лишний раз дёргают базу. На каждую функцию.
    НО! и то и то хорошо только во время разработки. При любом способе неправильным кодом можно положить сайт. А удалить неправильный код как раз проще из физ. файла.

    Таким образом все ваши правки functions.php не будут зависеть от обновлений темы и даже смены темы

    При смене темы и дочка создаётся новая. И функции тоже будут другие.

    Spectrum, SeVlad спасибо за советы. Понял.
    Я может не так выразился. Как раз в дочке всё и делаю. В ней ранее писал и дополнительные стили для дочки и сейчас еще добавил отдельный файл для шаблона. Не запутаться бы.

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

    Таким образом все ваши правки functions.php не будут зависеть от обновлений темы и даже смены темы

    Имееюся в виду изменения функционала сайта, внесенные в functions.php путем добавления сниппетов через плагин https://ru.wordpress.org/plugins/code-snippets/

    Имееюся в виду изменения функционала сайта, внесенные в functions.php путем добавления сниппетов через плагин

    Извините,за дурацкий вопрос.
    Т.е. есть код, который нужно как-то поправить. Есть сниппет, который этот код правит или отменяет. Получаем что один код конфликтует с другим. Значит, как минимум, один из них лишний. Зачем такое? Почему просто не вмешаться в код?

    ЗЫ. Еще раз прошу прощения за дурацкий вопрос. Я до сегодняшнего дня не знал для чего вообще существуют сниппеты. Я вообще еще мало чего знаю. Это в WP так всё интересно или так везде принято?

    Спасибо)))

    Модератор Yuri

    (@yube)

    Почему просто не вмешаться в код?

    Потому что при обновлении темы/плагина все внесенные изменения исчезнут.

    Это в WP так всё интересно или так везде принято?

    Бывает хуже. Гораздо хуже.

    Потому что при обновлении темы/плагина все внесенные изменения исчезнут.

    Юрий, как я понял, если вмешаться в код в дочке, то изменения не пропадут?

    Модератор Yuri

    (@yube)

    если вмешаться в код в дочке, то изменения не пропадут?

    Ну если сами не уничтожите 🙂

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

    Но не всегда всё гладко

    Да я заметил)))
    То размер шрифта непонятно почему меняется, то line-height вдруг разъезжается с мобильной версией. Вот опять же тот float, про который Вы мне сказали. Вроде не должен мешать, а тут нате-здрасьте, паразитные overflow)))
    Жуть как интересно!)))

    Модератор Yuri

    (@yube)

    Вообще-то, я имел в виду несколько другие сюрпризы, более головоломные 🙂

    То размер шрифта непонятно почему меняется, то line-height вдруг разъезжается с мобильной версией. Вот опять же тот float, про который Вы мне сказали. Вроде не должен мешать, а тут нате-здрасьте, паразитные overflow)))

    Это всё css. Просто наследование и каскадирование надо учитывать.

    А проблемы о которых намекал Юрий — это когда в родительской теме применяются функции без учета дочек.

    Получаем что один код конфликтует с другим.

    Вот чтобы не было конфликтов и нужны проверки существования функций. И в родителе и в дочке.

    Но это не единственное, что может вызывать конфликты.

    SeVlad, Юрий

    «А пока мы только дети
    Нам расти еще расти
    «)))
    Самосарказм)

    А есть инструменты, кроме CTRL+SHIFT+I чтобы ловить сюрпризы?

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