Дочерняя тема в #WordPress

Артем Абрамович

Меня зовут Артем Абрамович и я являюсь фрилансером-вордпресером. Занимаюсь настройкой и редактированием сайтов созданных на CMS WordPress. Это основная моя специализация, есть еще несколько работ, которыми я занимаюсь, но обо этом вы можете более подробно узнать из моего портфолио.

100 комментариев к “Дочерняя тема в #WordPress”

  1. Привет Артём, таким образом премиумную тему можно использовать?

    Ответить
    • Привет! По правильному только так и нужно делать. Причем, очень часто в премиумных тема уже есть готовые дочение темы

      Ответить
  2. Разве Layers, не лучше использовать для таких целей? То есть я имею виду, меньше заморочек. А css код открыт.

    Ответить
    • Хорошо сказано))) А как он в плане скорости загрузки и ресуроемкости?

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

      Ответить
    • Понятно. Удачи в сборке. Напишите потом впечатления от этого билдера

      Ответить
  3. Хорошо объясняете. Спасибо. И голос приятен и скорость что надо.
    Для чайников как я. Сейчас делаю тему. На хосте у клиента не оказалось панели управления. Открыла через тотал коммандер. далее по ссылке http://webgyry.info/wpm/kak-sozdat-fayl-stiley-css/ добилась появление темы. Билась часа 3. Не любила я тотал.
    Пошла дальше работать. Вдохновилась.

    Ответить
    • Спасибо. Можно еще Файззиллу использовать, тоже нормальный вариант. А вот то что панели нет на хостинге — это очень странно

      Ответить
  4. Здравствуйте, спасибо за уроки!
    У меня вопрос: при добавлении шорткодов тоже нужно создавать дочернуюю тему и редактировать файл functions.php в ней ?

    Ответить
    • Добрый вечер! Если добавлять именно функционал шорткодов, то да, именно в этот файл и надо добавлять

      Ответить
    • если вносить правки в родном functions.php они также слетят при обновлении темы , как и в случае со стилями ?

      Ответить
    • Конечно, при обновлении все файлы перезаписываются. Дочерки для того и придумали, чтобы изменения спокойно вносить и не бояться что что-то слетит при обновлении родительской темы

      Ответить
    • Благодарю за ответы !

      По какой-то причине не получилось импортировать стили из родительской темы .. В чём может быть проблема ?

      вставляю код , всё по инструкции :
      /*
      Theme Name: twentyfourteen-child
      Description: Дочерняя тема для темы twentyfourteen
      Author: Dima
      Template: twentyfourteen
      Version: 1.0
      */
      @import url(«../twentyfourteen/style.css»);

      Стили в дочерней теме не появляются

      Ответить
    • Скорее всего путь к файлу неправильный, вычитал в англоязычном кодексе WP другой способ, гораздо изящнее
      В функшионс дочерки добавляется такое
      function my_theme_enqueue_styles() {

      $parent_style = ‘parent-style’;
      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’)
      );
      }
      add_action( ‘wp_enqueue_scripts’, ‘my_theme_enqueue_styles’ );

      Таким макаром, подключаем стили родительской темы, а после них файл стиле дочерней. Эту функцию можно переписать по другому
      function my_theme_enqueue_styles() {

      $parent_style = ‘parent-style’;
      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’));
      }
      add_action( ‘wp_enqueue_scripts’, ‘my_theme_enqueue_styles’ );

      Ответить
  5. Артем, приветствую! А можно в дочернюю тему не добавлять файл functions.php? У меня дочерняя работает и без него. Все вставки в functions.php основной темы у меня реализованы через плагин functions. Это нормально?

    Ответить
    • Добрый день! Прошу прощения за долгий ответ, просмотрел коммент.
      Можно и не добавлять, главное чтобы файл style.css был, а в остальном не важно. Так что это нормально)

      Ответить
  6. Здравствуйте. У меня темя zerif-lite. Подскажите, пожалуйста, как мне подключить файл css.
    @import url: («../zerif-lite/style.css»);. Указываю этот путь для импорта. Что я делаю неправильно?

    Ответить
    • Спасибо. Задвал этот же вопрос 4-ём профессионалам — вы единственный, кто ответил. Это говорит о многом).

      Ответить
    • Доброго времени суток. А что если не помогает через @import и functions? Тема «Hueman», сайт грузится и стили, но шапки нет и к примеру в сайдбаре виджеты другие выводяться, что в таком случае делать?

      Ответить
    • Так не бывает, если не грузится что-то значит пути к файлам указаны не правильно. Проверяйте правильность подключения

      Ответить
    • В файле style.css три закомментированных обзаца, стилей нет вообще. Единственное, написано в 2 обзаце: «The main css stylesheet of the Hueman theme is located in /assets/front/css/main.css». Получается нужно до этого файла путь прописать? wp_enqueue_style($parent_style, get_template_directory_uri() . ‘/assets/front/css/main.css’);

      Ответить
  7. Добрый день! Подскажите! Я в плагине Woocomerce изменяю перевод плагином Loco, через некоторое время перевод изменяется на стандартный, попробывал сделать дочернюю тему тоже самое!

    Ответить
    • Обновление отключить можно, но не нужно, иначе в один прекрасный момент или магазин упадет, или шибки повылезают, или ломанут

      Попробуйте использовать такой хук
      add_filter( ‘woocommerce_register_post_type_product’, ‘artabr_modify_product_post_type’ );
      function artabr_modify_product_post_type( $args ) {
      $args[‘labels’][‘name’] = ‘Услуги’;
      $args[‘labels’][‘singular_name’] = ‘Услуга’;
      $args[‘labels’][‘menu_name’] = ‘Услуги’;
      return $args;
      }

      Он изменяет название типа записи. По умолчанию стоит Товар, а будет Услуги. Напишите потом подошло или нет

      Ответить
    • Я конечно извиняюсь! «дали борща дайте и ложку»
      Куда вставлять этот хук?

      Ответить
    • Пардон. Думал знаете. В файл functions.php темы. Где-нить в конце файла добавлять

      Ответить
    • с хуком ничего не получилось!
      установил плагин Advanced Automatic Updates, думаю иногда обновляться в ручную и сразу перезаписывать фалы перевода для вукомерц.

      Ответить
    • Хук заменяет название кастомной записи, но не обновлений. Видимо я не правильно понял задачу

      Ответить
  8. Здравствуйте, как подключить свои стили (slider-main.css)в дочерней теме через файл function.php?

    Ответить
  9. Спасибо, отличнейшее видео.
    Пару раз попадал в крайне неприятные ситуации, называемые 500 ошибка сервера 🙂 по причине того, что изменения все вносил в саму тему.
    Очень полезная инфа! 5+

    Ответить
    • очередной провал, могли бы у себя проверить. Борюсь со вчерашнего дня. На форуме разрабам написал — ХЗ игнорят…Может вы подскажете из-за чего.
      Бесплатный шаблон от разработчиков: colorlib, тема: Illdy — https://goo.gl/I6u61o, по факту редизайн я сделал, но так как разработчики частенько обновляют тему, пару раз сайт у меня падал в 500, ну и верстка слетала, а тут как раз Ваше видео увидел, ну и решил сделать дочернюю тему…точнее пытаюсь до сих пор.
      Все сделал, как вы показывали в видео (сверился даже с кодексом) — комар носа не подточит. Но если переключаться на дочернюю тему, тема перестает работать, сайт где установил тему: https://goo.gl/SNgYLx

      Не подскажите, может помимо style что-то ещё нужно подключить?
      PS: чуть не забыл, есть странность, так шаблон отображается, если не авторизоваться на сайте. Если авторизоваться — тема отображается как надо о_О

      Ответить
    • Что значит перестает работать? Лучше всего ориентироваться на английский кодекс и здесь в комментариях уже писал. Лучше подключать дочерку через функцию в файле functions. Ниже посмотрите в коментах, есть готовая функция

      Ответить
    • В прямом смысле 🙂 перестает работать, отваливаются блоки (не отображаются) некоторые блоки не корректно отображаются.
      Разработки этой темы посоветовали плагин для создания дочерних тем, буду пробовать.

      Ответить
  10. Спасибо,все доступно и понятно.Но у меня возникла проблема,стилей на дочерней теме все никак нет(файл style.css проверял, там все правильно).Подскажите в чем проблема?

    Ответить
    • Файл стилей значит не подключается, проверяйте пути к файлу

      Ответить
  11. Артем, добрый день! Большое спасибо за Ваши передачи!
    Если позволите, у меня к Вам несколько вопросов:
    1. в фале functiouns.php темы вообще нет таких функций для копирования, которые представлены в данном видео. Есть такая фраза: «* When Using Child Theme, Parent rtl.css is not load, only load child themes load rtl.css
    * When not exists rtl.css at Child Theme, It should be automate include parent rtl.css». Что это означает? До подключения дочерней темы, я внесла ряд изменений во внешний вид сайта. При подключении дочерней темы, эти изменения отражаются, кроме, почему-то, главной шапки сайта (?…) Пока в папке дочерней тему только файл style.php потому что я совсем не понимаю, что дальше делать. Я совсем новичок в сайтостроении, учусь все настраивать по Вашим урокам. Подскажите, пожалуйста, все ли я сделала правильно? Какие функции мне нужно подключить?
    2. У меня почему-то не подгружается картинка дочерней темы:( Параметры картинки брала как у основной и по ним сделала картинку.
    Спасибо!

    Ответить
    • Добрый! Дублирую сюда ответ из ВК)
      1. Вам говорят что для изменения файлов сайта нужно использовать дочернюю тему. Файла style.php — не может быть в дочерке
      только style.css 
      Функии для подключения дочерки можно вот тут взять https://gist.github.com/artikus11/ca7ccdf9bd4697608bf..
      Функция надо добавлять в файл functions.php дочерней темы, если его нет, то создать

      Ответить
  12. 1. Зашел на канал. 2. Посмотрел видос. 3. Сделал как было показано. 4. И всё работает. Спасибо большое. Здоровья Вам.

    Ответить
  13. Подскажите пожалуйста, как вносить изменения в *.js файлы, к примеру у меня в родительской теме есть файл js/owl.carousel.min.js в него мне надо внести изменения добавить кусок кода, как это осуществить в дочерней теме?

    Ответить
    • Тут только переподключать. Отключаете в родителке и включаете в дочереке. И уже изменения вносите. Примерно так
      add_action( ‘wp_enqueue_scripts’, ‘yzh_child_theme_enqueue_styles’ );
      function yzh_child_theme_enqueue_styles() {
      wp_dequeue_style(‘basic-fonts’);
      wp_enqueue_style( ‘basic-fonts-plus’, ‘//fonts.googleapis.com/css?family=Lora:400,400i,700,700i|Open+Sans:400,400i,700,700i&subset=cyrillic’, array(), null );
      }

      Ответить
  14. Здравствуйте.А есть ли у вас выход из такой ситуации.
    Нужно сделать изменения в файле род темы: require get_template_directory() . ‘/inc/template-tags.php’; Соответственно в дочерней,но как её подключить…
    Код require_once( get_stylesheet_directory(). ‘/inc/template-tags.php’ ); в functions дочерней не помог.
    Не могу ни футер изменить,ни кнопку «читать далее».
    Очень обрадуете,если поможете.

    Ответить
    • Доброго! Надо конечно смотреть код, но скорее всего там есть фильтры через которые можно менять или просто можно изменить функцию. Но весь файл менять — это не правильно в данном случае

      Ответить
  15. Здравствуйте Артем! Хотел узнать у вас по поводу плагинов для создания дочерних тем, есть ли разница, лучше вручную создавать дочернюю тему или же плагином можно ее сделать? И какой плагин по вашему мнению лучше использовать для создания дочерних тем, их в репозитории много очень сейчас?

    Ответить
    • Доброго! Ну мне вручную удобнее, контроля больше. А плагин, наверное любой, он просто тему создает и все

      Ответить
  16. Спасибо. Отличное видео, все максимально доходчиво и понятно

    Ответить
  17. Артем, спасибо за видео! Как всегда по делу! Вопрос: изменяется (обновляется) родительская тема (это Divi), а дочерняя тема не обновляется. Как обновлять дочернюю тему в синхронизации с родительской?

    Ответить
    • А зачем дочернюю обновлять? Это по функционалу не требуется. Дочерние темы специально были задуманы для того, чтобы обновлять родительскую с сохранением изменений. Ну на крайний случай можно обновить заменой файлов через ФТП

      Ответить
    • Спасибо за ответ. Хочу уточнить — В обновленную версию родительской темы введены новые фичи, они будут присутствовать в дочерней теме?

      Ответить
  18. фигня какая то, зачем всей этой фигнёй заниматься, легче сверстать себе ту тему которая будет нравиться

    Ответить
    • Не легче! Иногда просто времени нет верстать с нуля, проще тему готовую накатить и к ней дочерку

      Ответить
    • нет, ну допустим есть заказ сделать сайт с определённым дизайном в pixel perfect, это чтобы на готовую тему накатить нужно будет много переделывать переписывать. А если сверстать с нуля, получится качественно, а потом натянуть на пустышку от underscores. Мне так удобнее например, адаптивность отлаживать например и всё такое.

      Ответить
    • Это если есть такой заказ. То да, надо тему делать. А если тема уже готовая покупается, то без дочерок не обойтись

      Ответить
  19. Искал за дочерние темы. Остался доволен.

    Ответить
  20. Артём, скажите пожалуйста, как использование дочерней темы отразится на скорости загрузки сайта?

    Ответить
    • Не знаю, не задавался подобной проблемой. Обычно никак, если в дочерку что-то сложное не загружать

      Ответить
    • Спасибо. Если я когда либо и создам сайт на WordPress, то в первую очеред благодаря вашим урокам)))

      Ответить
  21. После просмотра многое стало понятно.
    Благодаря вам лично и тому что вы делаете на своем канале я за 10 дней сделал 2 магазина.
    С учетом того что на второй у меня ушло 3 дня.
    Замечательный подход к повествованию.
    Смотрю, делаю — доволен.
    Большинство ответов на свои вопросы по WordPress и WooCommerce я нахожу на вашем канале.

    Ответить
  22. Здравствуйте, Артем! Спасибо за ваши видосы, они очень крутые и полезные! Помогите пожалуйста! Создал папку theme-name-child>создал в ней файл style.css> скопировал из кодекса содержимое css файла с заменой необходимых строк (Theme Name, Description, Template, Version)>зашел в /wp-admin/themes.php>выдало такое сообщение: «Broken Themes
    The following themes are installed but incomplete.

    Name Description
    Theme Name Child The theme defines itself as its parent theme. Please check the Template header.»

    Ответить
    • Доброго! Вам говорят что ваша тема определена как родительская. Видимо Template указан не верно. Он должен соответствовать названию ПАПКИ родительской темы

      Ответить
  23. Если бы можно было подписываться на канал дважды, я бы это сделала! Спасибо большое за еще один полезный видос!

    Ответить
  24. Видео супер, только почему то не работает корректно на теме twentyfifteen ((. Делаю как вы рассказываете, но в админке сайта её нет (

    Ответить
    • Попробуйте использовать плагин, например Generate Child Theme С ним по проще все будет

      Ответить
  25. Можно ли менять с помощью файла functions.php функции плагинов в частности плагина woocommerce
    Назначая валюту, в коде так как мне нужно, но при обновлении все сбрасывается

    Ответить
    • Нет, нельзя. ТОлько если хуки плагина использовать или плагин не обновлять

      Ответить
    • @Виктор К Разбираться что требуется сделать, как это должно работать и как сделать так чтобы при апдейтах не слетало. Но если речь про вукомерс, то там многие вещи через хуки решаются

      Ответить
  26. Спасибо за хорошую подачу ! Вопрос: всё-таки что лучше применять для правки темы — дочку или плагины для вставки сниппетов?

    Ответить
    • На мой взгляд, лучше дочку. В плагине все данные в базу пишутся, а зачем несколько раз делать запросы в базу? Ну например, простой сниппет вывода поста. Вы его добавляете в плагин, плагин его записал в базу, а при выводе происходит следующее: идет запрос на получение сниппета, получаем сниппет, потом начинаем выполнение сниппета, а там еще раз запрос.И зачем такое?

      Ответить
  27. Артём, Вы говорите, что код берете из кодекса (тайм-код — 3:17). Где найти кодекс?

    Ответить
    • Сегоодня он уже не актуален. Смотрите сайт wp-kama.ru там все по-русски с примерами и очень подробно расписано

      Ответить
  28. Здравствуйте, все получилось до момента добавления @import url, я изменила название twenty на свою род.тему, обновляю wp- активная «twenty»! Хотя до добавления @import я активировала созданную дочерку. Как быть? Почему ошибка?

    Ответить
    • Доброго! С дочерками такое бывает. Поставьте плагин Child Theme Configurator создайте дочерку и потом удалите плагин, так будет проще всего

      Ответить

Добавить комментарий

%d такие блоггеры, как: