Как создать дочернюю тему WordPress

Друзья, всем привет. Я рад приветствовать вас на моём блоге. И сегодня хочу рассказать о создании дочерней темы WordPress. На сегодняшний день – это самый оптимальный подход при создании сайта на платформе WP.

Как вы знаете, для того чтобы создать сайт нужно следовать определённым шагам. И одним из таких шагов является подбор темы оформления вашего сайта или блога. Тем очень много, и при выборе нужно, прежде всего, руководствоваться техническими характеристиками (валидность кода, скорость загрузки, мобильность, кросбраузерность и т.д.). А дизайн всегда можно доработать под нужды конкретного проекта.

Что такое дочерняя тема WordPress

Дочерняя тема – это тема, которая расширяет функциональные возможности родительской темы. То есть, вы выбираете тему, устанавливаете её, и у вас открывается возможность дорабатывать тему. В большинстве случаев – эти доработки сводятся к изменению дизайна (шрифты, цвета и так далее). Это поначалу. Дальше, больше – микроразметка, ссылки в комментариях и так далее.

Но, если тема регулярно обновляется, то все изменения, внесённые вами, будут сброшены к базовым настройкам.

Так вот, дочерняя тема – это 100% копия родительской темы (основной темы). Все изменения, сделанные в дочерней теме, будут отражаться и в родительской. Но при этом файлы родительской темы не будут меняться. И обновление темы будет проходить с учётом ваших изменений.

Как создать дочернюю тему WordPress

Для начала вы должны понять структуру построения папок на вашем сайте. То есть, создав сайт на платформе вордпресс, на сервере появится папка themes, в которой содержатся папки всех тем установленных по умолчанию и вами.

Именно в папке themes, рядом с родительской темой нужно будет создать новую папку с дочерней темой.

Создаем папку дочерней темы
Создаем папку дочерней темы

Шаг 1.

Подключаемся к серверу. Через ftp-соединение или через файловый менеджер хостинга, это на ваше усмотрение.

Поочерёдно открываем папки:

public_html

папка с вашим сайтом

wp-content

themes

папка родительской темы

Шаг 2.

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

Шаг 3.

В папке дочерней темы создаёте файл style.css. Это обязательный файл. Именно он будет отвечать за взаимодействие родительской и дочерней тем.

Настройка файла style.css дочерней темы WordPress

Файл style.css в дочерней теме должен содержать информацию о родительской теме. По ней WordPress поймет, между какими темами организовано взаимодействие.

Так же файл style.css в дочерней теме заменяет этот же файл в родительской теме. И поэтому нужно обязательно подключить стили из родительской темы.

Итак, приступим.

Шаг 1.

Откройте файл style.css (я обычно создаю этот файл на своём компьютере в редакторе Notepad++, а потом копирую его в папку дочерней темы на хостинг).

Вставьте в файл style.css вот этот код:

/*
Theme Name:   Название темы (английскими символами)
Theme URI:    url адрес темы
Description:  Описание темы
Author:       Ваше имя (как автора)
Author URI:   url вашего сайта или страницы об авторе
Template:     название родительской темы (с соблюдением регистра)
Version:      1.0.0
*/

Вот пример, как выглядит этот код в моей новой теме.

Пример моего кода
Пример моего кода

Учтите, обязательными полями к заполнению являются Theme Name и Template. Остальные поля вы заполняете на своё усмотрение.

Шаг 2.

Теперь нужно организовать импорт стилей из родительской темы. Дело в том, что как только появляется файл style.css в дочерней теме, WP не загружает этот же файл из родительской темы. И как следствие без стилей ваша тема будет выглядеть ужасно.

Для подключения стилей из родительской темы нужно прописать всего лишь одну строчку кода:

@import url("../папка родительской темы/style.css");

Как вы понимаете – это условный путь к файлу стилей в родительской теме. Вы также можете прописать полный путь (абсолютный) к файлу стилей родительской темы.

А вот уже после подключения стилей вы можете добавлять свои стили оформления. Обратите внимание, что именно после, все ваши дополнительные стили должны идти после строчки импорта.

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

Какие файлы можно хранить в папке дочерней темы

В этой папке вы можете хранить хоть все файлы родительской темы. Но, это вовсе не обязательно. Храните лишь те, с которыми вы будете работать. В которых будете делать изменения. Разберём несколько примеров.

Файл функции темы functions.php

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

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

Вот скажем, у меня в текущей теме постоянно была проблема с тем, что путались заголовки H1 и H2. Решение этой проблемы я раскрыл в этой статье. А в своей новой теме, я могу реализовать это через файл functions.php. Добавив лишь вот такой код:

add_filter('tc_site_title_tag', 'change_tag');
function change_tag() {
if (!is_single () && !is_page ())
return 'h1';
if (is_single () || is_page ())
return 'p';
}

А всё потому, что моя новая тема, полностью построена на API ключах WordPress.

Основные файлы темы (шаблона)

После активации дочерней темы в административной панели вы не сможете редактировать основные файлы темы (single.php, page.php, index.php …). Потому, что их просто там не будет.

Нет файлов для редактирования
Нет файлов для редактирования

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

Копируем от родителя к дочке
Копируем от родителя к дочке

Копировать файлу нужно строго в то же место, где они находятся в родительской папке. То есть, чтобы путь к файлу отличался только названием родительской и дочерней папки.

После копирования нужных файлов, их можно будет редактировать через административную панель WP.

Файлы добавлены
Файлы добавлены

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

А теперь смотрим видеоурок и можно приступать к созданию дочерних тем.

Вот и всё, дорогие друзья, простой алгоритм создания дочерних тем в WordPress закончен. Пробуйте, внедряйте, и создавайте свои темы. Только хочу обратить ваше внимание на то, что лучше всего создавать дочернюю тему сразу после установки родительской. Иначе, если вы уже ковыряли родительскую тему, то ваша дочерняя тема не будет реализована на 100%, да встать может криво.

Так, что решили работать над новой темой, выбрали, создали дочернюю тему и работайте с ней.

На сегодня всё, до встречи в новых видеоуроках и статьях. И конечно же, если будут вопросы, пишите в комментариях, буду рад помочь. Желаю вам удачи и хорошего настроения!

С уважением, Максим Зайцев.

Понравилась статья? Поделиться с друзьями:
Комментарии: 71
  1. Василий

    Очень интересная тема. Сразу появилось несколько вопросов.

    1. Максим, а использование дочерней темы как-то влияет на скорость загрузки сайта?

    2. Я использую специальный плагин Function.php для вставки кода в файлы темы. Если дополнительно использовать еще дочернюю тему, например, для микроразметки. Возможно ли такое?

    3. Если копировать полностью файлы с родительской темы, то после обновления темы ничего не изменится. А ведь автор может что-то оттуда удалить. Нам нужно сохранить только определенные строки кода, а остальные изменения пусть происходят. Такое возможно?

    1. Максим Зайцев (автор)

      Вася, привет. Дочерняя тема в действительности расширяет границы в доработках темы под свои нужды.
      1. На скорость загрузки дочерняя тема не влияет. Всё зависит от самой родительской темы и от кода, который мы вставляем в дочернюю тему. Если все доработки валидные, то и скорость загрузки будет на высоте. Я тестировал на GTmetrix и Pingdom. Главное чтобы родительская тема была шустрая.
      2. Функции темы в дочерней теме это по сути дела все наши доработки собранный в плагин Function.php. Так, что свободно можно использовать плагин и не лезть в файл функции темы. Ну и соответственно всю микроразметку нужно создать в дочерней теме.
      3. Все файлы копировать не нужно. Лишь те, в которых делаем изменения. Так файлы родительской темы остаются в оригинале. Файлы обновляются с учётом наших доработок. Я уже проверил.

      1. Василий

        Максим, я имею ввиду, что если я сохраню полный файл в дочерней теме, условно, файл header, то при изменении оригинальной темы ничего не измениться. Так как в дочерней теме останется полный старый файл. А вот, если бы сохранить в дочерней теме только некоторые строчки кода, которые необходимо сохранить в случае обновления. Не знаю, возможно ли сделать дочерний файл header таким образом.

        1. Максим Зайцев (автор)

          Вася, можно реализовать вставку отдельных строк с помощью funtcion.php. Но, если много таких доработок, то возрастает нагрузка! По своей новой теме просмотрел журнал обновлений, — основные файлы шаблона (header, footer …) не обновлялись с момента создания. Так, что я смело правлю их в дочерней теме.
          Но всё же если файлы обновляются, то лучше тогда вносить изменения через funtcion.php дочерней темы.

    2. Александр

      Добрый день.

      Я уже сделал сайт, много чего менял в родительской.
      Потом только узнал, что такое дочерние темы.
      Сделал, но не работает @import url, стили не подкачиваются из родительской.
      Наверное, уже поздно дочерную создавать?

      1. Максим Зайцев (автор)

        Здравствуйте, Александр. Дочернюю тему никогда не поздно создавать. Дело в том, что даже если вы подключите стили от родительской темы и продолжите работу в дочерней, все предыдущие изменения родительской темы пропадут после обновления. Я имею ввиду ваши доработки в файлах темы. Поэтому вам нужно не только подключить файлы стилей, в новых темах их обычно несколько, но и перенести в дочернюю тему все файлы, которые подвергались доработкам. И структура папок должна совпадать с родительской. Это важно.
        Ещё, как вариант, если не получится подключить файлы стилей, их содержимое всегда можно вставить в файл стилей дочерней темы. Только нужно быть внимательным, учесть медиазапросы и возможное дублирование стилей.

  2. Александр

    А я вот обновил основную тему и в дочерней тоже все поменялось. Пришлось опять редактировать. Правда в дочерней не добавлял кроме style.css ничего (тоже customizr)

    1. Максим Зайцев (автор)

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

      1. Александр

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

        1. Максим Зайцев (автор)

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

  3. Сергей Стеклов

    У меня почему-то при обновлении темы Customizr слетает дочерняя тема. И все из-за отредактированных файлов, которые лежат в папке inc —> parts. А именно:
    class-content-featured_pages
    class-content-post_navigation
    class-content-slider
    class-footer-footer_main
    class-header-header_main
    Когда эти файлы удаляю, то дочерняя тема с обновленной родительской работаете нормально. Но сейчас у меня Customizr 3.3.26 работает с дочерней нормально. На как только начинаю обновлять родительскую, то дочерняя слетает. Получается, что приведенные выше файлы вообще, нельзя редактировать, так как с новой версией темы старые копии файлов могут не работать. Уже точно не помню, что именно в них менял. Но вроде точно убирал ссылку на разработчика в подвале, редактировал слайдер и еще что-то. Тема не Pro, то есть используется бесплатный вариант.

    1. Максим Зайцев (автор)

      Здравствуйте, Сергей. Да, из-за разницы в файлах тема может перестать работать. Здесь либо все изменения делать через файл функций темы, либо перенести файлы в дочернюю тему, отредактировать их и при обновлении родительской темы вносить в них корректировки. А может даже копировать из родительской темы новые файлы и вносить в них изменения по старым. Для сравнения содержимого файлов можно использовать один их описанных в статье способов: http://1zaicev.ru/4-sposoba-sravnit-dva-fajla-po-soderzhimomu/

      1. Сергей Стеклов

        Не, постоянно редактировать файлы это не вариант. Если сайтов много, то будет трудно. Я пока просто те функции, что были в тех файлах добавил в файл function.php. Правда, пришлось полностью все функции (а не одну конкретную) копировать в function.php. Пробовал по отдельности, но не помогало. Пришлось полностью весь код перенести в function.php. Теперь при обновлении нормально работает. Надеюсь, будет нормально и дальше.))

        1. Максим Зайцев (автор)

          Через файл function.php не слетит. Будет работать нормально. Это лучше чем править файлы. Я тоже все изменения и доработки делаю через функции темы.

  4. Наталья

    На WP делаю второй сайт, использую готовые шаблоны. Второй сайт пока на Денвере, WordPress с темой оформления Storefront. Сама тема разработана под интернет-магазин, интегрируется с плагином магазина WooCommerce. Проблема в том, что Storefront уже является дочерней темой Twenty Ten. Вопрос: как быть в таком случае — создавать дочернюю тему от дочерней? Или оставить всё как есть? И что будет, если в процессе работы сайта просто НЕ ОБНОВЛЯТЬ ТЕМУ? Какие могут быть последствия (без обновлений)? И второй вопрос: если не обновлять тему, но регулярно обновлять движок магазина (WooCommerce) — возникнут ли в дальнейшем какие-нибудь фатальные конфликты? Заранее благодарю за ответ!

    1. Максим Зайцев (автор)

      Здравствуйте, Наталья. Создавать вторую дочернюю тему нет необходимости. У вас уже готовая рабочая схема. Обновлять тему можно. Но, только если вы вносите изменения в тему, то они будут утеряны после обновления. Можно делать все доработки через файл функции темы, тогда все доработки останутся после обновления. Но, это довольно сложно.
      Тему можно и не обновлять. Конфликтов в работе быть не должно. Обычно тема обновляется, когда автор выявил неисправность или добавил новый функционал. Если тема на данный момент полностью вас устраивает, то вы можете смело вносить необходимые доработки и не обновлять тему.

      1. Наталья

        Максим! Огромное вам спасибо за оперативный и подробный ответ! В принципе я и не собиралась обновлять, просто начиталась страшилок на других блогах и забеспокоилась :)))) После ваших рекомендаций укрепилась в своём решении — не обновлять…
        Очень полезный у Вас блог, давно по нему юзаю! Много необходимой для работы с WP информации. Спасибо огромное за доброжелательное отношение к неучам и за достоверные советы! Удачи Вам!!!

        1. Максим Зайцев (автор)

          Наталья, спасибо за добрые слова. Если будут вопросы, обращайтесь, я постараюсь помочь. Удачи Вам! :-)

  5. Тата

    Спасибо за подробную и понятную информацию по дочерним темам. Сделала все, как написано. Обновила и движок, и тему — работает все, кроме плагина wppage. Теперь страницы, сделанные с его помощью отображаются как обычные страницы с сайдбаром установленной темы. Предполагаю, надо где-то прописать template_include для страниц wppage. Но моих познаний явно не хватает. Можете подсказать, Максим?

    1. Максим Зайцев (автор)

      Тата, добрый вечер. В таких случаях достаточно переустановить плагин под дочернюю тему. Но, у вас уже есть страницы созданные плагином. В таком случае советую проконсультироваться с разработчиками плагина по адресу mail@wppage.ru.

  6. Лариса

    Максим, вопрос: плагины тоже загружать в дочернюю тему? А как быть с теми плагинами, которые уже были загружены в родительскую? Все ли будет работать?

    1. Максим Зайцев (автор)

      Лариса, привет. Да, плагины тоже устанавливать нужно в дочерней теме. И те что до этого были в родительской, тоже нужно установить в дочерней теме.

      1. Лариса

        Максим, получается, что изначально нужно создать дочернюю тему, а потом устанавливать плагины, редактировать стили и код, так?

        1. Максим Зайцев (автор)

          Лариса, всё верно.

      2. Лариса

        Кстати, я создавала контактную форму…ее тоже, получается, надо поместить в папку с родительской темой и прописать до нее путь?

        1. Максим Зайцев (автор)

          Да, некоторые, внешние элементы нужно прописывать во родительской теме. Или искать, где прописаны пути к файлам и менять их.

  7. Лариса

    Максим, спасибо большое! Все получилось! Вышло так, что впервые пришлось сделать дочернюю тему для клиентского сайта, поэтому столько вопросов было. Сейчас проверила, все работает.

    1. Максим Зайцев (автор)

      Очень, рад что всё получилось. Если будут ещё вопросы, — готов на них ответить! ;-)

  8. Лариса

    Максим, и снова я. Начала создавать дочерние темы под сайты и возник вопрос: есть ли темы, которые не поддерживают создание дочерних тем? Есть у меня на тестовом домене тема, где не получается активировать дочернюю. При этом сайт слетает и выдает 500 ошибку. В чем может быть дело? Пробовала переносить в папку с дочерней темой один файл style.css и все папки и файлы родительской темы (кроме родительской таблицы стилей), все равно при активации ошибка и вытаскивание сайта из резервной копии…

    1. Максим Зайцев (автор)

      Лариса, такое бывает, когда в дочерней теме прописан путь к папке или файлу, которого нет в родительской. Нужно попробовать в дочерней теме создать только файл стилей без папок и других файлов. Когда тема подключится, то уже можно постепенно переносить нужные файл и в конечном итоге будет понятно что нарушает работу сайта.
      Я в таких случаях работаю через ftp соединение, копирую файл и проверяю работу. Если сайт перестал работать, значит причина в этом файле. Удаляю его — сайт начинает работать. А я выясняю причину, что в нём не так.

      1. Лариса

        Спасибо за идею! Сделала так: создала папку с дочерней темой и файлом style.css. Активировала дочернюю тему из админки и получила сайт, лишенный стилей. Иногда такая картина бывает при медленном соединении интернета. У меня такие сайты на локалке получались во время осваивания html)))))))))) В теме много настроек, виджетов. Есть спец. поле для создания своих стилей. Попробовала в это поле скопировать полностью CSS родительской темы, получила какую-то кашу из виджетов (подвальные «налезли» на виджеты хедера)… Не понимаю, почему стили не подключаются по человечески… Кстати, в этой теме два файла functions… Один из них лежит в дополнительной папкеп со своим названием.

        1. Максим Зайцев (автор)

          Лариса, вот с таким, перестрахованными, темами сложнее всего. Так как подключение стилей и функций идёт из разных файлов. Из-за этого, когда вы собираете стили в одном месте, то получается каша. Была у меня одна такая тема, так я с ней неделю провозился. А клиент через пару месяцев опять решил сменить тему ;-) Вот так-то.

          1. Лариса

            Максим, последовала вашему совету. Подключила дочернюю тему с единственным файлом css и стала через ftp копировать в папку с дочерней темой по одному файлы темы и проверять работоспособность сайта. Серверная ошибка возникает именно при копировании файла functions.php (первого, который вместе со всеми файлами, не в дополнительной папке, тот еще не проверяла). Там константы какие-то прописаны: «Define Directory Location Constants» Может, в них дело? Файл тут же с хостинга удалила, сайт заработал, но стили слетели(((

          2. Максим Зайцев (автор)

            Лариса, значит в этом файле прописаны связи на файлы или папки, которые должны быть в папке родительской темы. Обычно это выясняется по пути к файлу или папке. Но, бывают и случаи, когда такие связи прописаны в виде php, а адреса в базе данных. В любом случае, причина падения сайта установлена. Теперь нужно проанализировать сам файл. Само сообщение в файле указывает на наличие директории, без которой работа не возможно. Вот её и надо выяснить. Я обычно в таких случаях не удаляю строки из файла, а комментирую их и тем самым выясняю где проблема.
            Так что теперь нужно работать с этим файлом.

  9. Лариса

    Максим, в кодексе ВП написано, что можно создать в дочерней теме файл functions.php, который будет подгружатся в дополнение к родительскому. В нем можно написать директивы, которые будут переопределять директивы из родительской темы. Плюс написать свои директивы. Стили родительской темы так и не подключились у меня через импорт в файле css. Пришлось это сделать через дочерний файл functions.php. Через этот же файл сделала транслитерацию. Сайт в рабочем состоянии. Но! У меня не получилось переопределить функцию копирайта в подвале сайта (там ссылка на разработчика и на вордпресс).

    1. Лариса

      Все, ненужные копирайты убрала, но не через переопределение, а просто прописала участок кода из функции темы родительской и убрала оттуда условия, по которым появляются линки. Пока что все работает, но еще сайт не настраивала, он в классическом, первоначальном состоянии.

      1. Максим Зайцев (автор)

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

    2. Максим Зайцев (автор)

      Лариса, да именно через файл functions.php дочерней темы вносятся все изменения и они не слетают при обновлении родительской темы. Но, это хорошо работает на современных тема, где всё завязано на API.
      С копирайтом, если не получается изменить его в отдельности, то менять нужно весь выше стоящий блок. Или файл подвала можно скопировать в дочернюю тему и изменить копирайт. Так гораздо проще. ;-)

      1. Лариса

        Максим, дело в том, что в файле подвала нет и намека на копирайт, он прописан через файл функций :-0 Поэтому и меняла файл функций.

        1. Максим Зайцев (автор)

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

          1. Лариса

            Максим, а есть ли смысл в таких темах делать свои доработки, если разработчики мудрят, меняя функции?

          2. Максим Зайцев (автор)

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

  10. Наталья

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

    1. Максим Зайцев (автор)

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

  11. Марина

    Поздновато я заметила этот сайт, но лучше поздно, чем никогда. Теперь если какой-то вопрос по сайтостроению — сразу сюда.
    Сделала дочернюю тему и скоро собираюсь обновить родительскую. Посмотреть, что будет. Вот, блин, китайский пионер.

    1. Максим Зайцев (автор)

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

  12. Левон

    Добрый день!
    Скажите, пожалуйста, как вы считаете использование дочерней темы как-нибудь связано со скоростью загрузки?

    1. Максим Зайцев (автор)

      Здравствуйте, Левон. Дочерняя тема не влияет на скорость загрузки сайта.

  13. Максим

    добрый день, Максим!
    спасибо за подробную статью! подскажите, пожалуйста, где копать?
    создал дочку, внес много изменений, все работает, но при внесении изменений в
    «style.css» в дочерней теме — изменений на сайте нет. если правки вносить в родительской
    в «style.css» — изменения есть! в чем загадка?

    1. Максим Зайцев (автор)

      Здравствуйте, Максим. Такого быть не должно. Может у вас включено кэширование. Отключите плгины, если они есть и очистите кэш браузера. Так же попробуйте из родительской темы вырезать стили и вставить их в дочерний файл. Только сделайте резервные копии. Это точно даст понятия, что все стили не работают, а не отдельные изменения. Также в отдельных темах бывают проблемы, когда в шапке прописан абсолютный путь к файлу стилей. В таком случае, изменения будут работать только в указанно файле. Вот как-то так. Попробуйте. Удачи!

      1. максим

        Максим, нашел причину. вернее строку, которую отредактировав все заработало.
        дело в том, что для создания дочки в моей теме ( zerif lite ) недостаточно прописать
        команду импорта:

        @import url(«../папка родительской темы/style.css»);

        вернее не все унаследуется. необходимо создать «functions.php» с кодом:

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

        1. Максим Зайцев (автор)

          Спасибо, Максим. Рад, что у вас всё получилось. Удачи!

  14. Александр

    Здравствуйте, Максим!
    При вставке доработанных файлов с микроразметкой, возникают проблемки. Я уже говорил Вам, что не особо владею языком програмирования. Вот, например при вставке файлов sidebar-left и sidebar-right с доработкой, вы не указали, как правильно их в теги заключить, и на сайте остается только хейдер. Опять же при вставке class-content-page с микроразметкой по Вашим урокам, правый сайд-бар в страницах слетает под левый. А про functions я вообще ничего понятного не нашел ни где — при его вставке в любом виде (оригинал или с доработкой из уроков микроразметки), сайт становится недоступен. А ведь именно он, я так понимаю, является одним из основных элементов для правильного функционирования дочерней темы. Остальные файлы становятся нормально, только Яшка ругается на подвал (гугл нет): ПРЕДУПРЕЖДЕНИЕ: значение «© 2016» в поле copyrightYear не является корректным значением числа. Вывод статей у меня не с главной настроен, по этому, сами понимаете, при редактировании приходилось искать другие номера строк. Показ анонсов, тоже по другому. Не показываю теги рубрик, даты и автора — в Search Console куча урлов с ошибками появляется. В общем, гуглю, гуглю, а в итоге снова к Вам попадаю. Если сможете, что-нибудь подсказать — буду благодарен!

    1. Максим Зайцев (автор)

      Здравствуйте, Александр. Вся ошибка в том, что до этого у вас не было дочерней темы. И теперь, когда вы пытаетесь заменить файлы родительской темы, происходит конфликт.
      Принцип дочерней темы в том, что создаётся главный файл style.css и через него идёт связка. Все остальные доработки делаются либо через файл функции темы, либо точные копии файлов родителей, с последующей доработкой.
      При копировании доработанных файлов никаких проблем не должно быть. Никакие теги и прочие хитрости применять не нужно, всё должно работать.
      Я предполагаю, что версия вашей дочерней темы и родительской отличаются и это является ошибкой. В functions.php достаточно неверного одного символа и сайт перестаёт работать.
      Что до ПРЕДУПРЕЖДЕНИЕ: значение «© 2016», то можно это обойти добавив в файл footer.php код с метатегом. У меня коды в комментариях не проходят, если интересно, пишите на почту maksim@1zaicev.ru, подскажу.

      1. Александр

        Пишу на почту.

  15. Александр

    Вот здесь, похоже, что-то есть, но мне не совсем понятно: _http://seodima.com/sozdanie-dochernej-temy-wordpress/

    1. Максим Зайцев (автор)

      Это слишком заумно, всё гораздо проще.

  16. артем

    Здравствуй, Максим!
    Тоже озадачился созданием дочерней темы для блога. Безусловно, сложного ничего нет и вещь это полезная. С другой стороны, думаю, а какой смысл обновлять тему? Какое практическое благо нам несет обновление темы? Необходимость обновления движка, — да — факт неоспоримый, но вот с темами не понятно и в сети не нашел внятного объяснения по этому поводу. Так не проще ли внести необходимые изменения в шаблон для своих нужд и просто отключить обновление темы через функцию?

    1. Максим Зайцев (автор)

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

      1. артем

        Ну понятно…пожалуй, сделаю выбор в пользу отключения обновлений темы после «допила». И бэкапы всем нам в помощь, если что :) Спасибо за ответ!

        1. Максим Зайцев (автор)

          Правильный выбор ;-) Желаю успеха!

  17. Виктория

    Здравствуйте!
    Узнала о дочерних темах после того, как уже сделала изменения в родительском шаблоне. Теперь если я сделаю дочернюю тему с помощью плагина Child Theme Configurator, то при обновлении WordPress изменения в теме останутся?

    1. Максим Зайцев (автор)

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

  18. Пеппи

    Переписала файлы из родительской папки в дочернюю. Но в админке ничего кроме style.css ничего не видно.

    1. Максим Зайцев (автор)

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

  19. Alexandros

    Установил тему NepalBuzz. Там function.php очень маленький, содержание его такое:
    [code]
    if ( !defined( ‘NEPALBUZZ_THEME_VERSION’ ) ) {
    $theme_data = wp_get_theme();

    define ( ‘NEPALBUZZ_THEME_VERSION’, $theme_data->get( ‘Version’ ) );
    }

    /**
    * Implement the core functions
    */
    require trailingslashit( get_template_directory() ) . ‘inc/core.php’;
    [code]
    Т.е. идет перенаправление на файл core.php в папке inc. В этом core.php (большого размера), по сути, и содержится все, что обычно, в других темах, и составляет содержание function.php. Не знаю, зачем создатели так сделали.
    И это вызывает некоторые неудобства. Например, тема не переведена на русский язык. В папке languages есть только один файл nepalbuzz.pot. Допустим, в окне поиска высвечивается слово «Search…» Я хочу поменять его на «Поиск… » В файле nepalbuzz.pot нахожу такую строку, она ссылается на файл inc/default-options.php. Там тоже нахожу такую строку.
    Но менять в родительской теме файлы не рекомендуется.
    У меня уже создана дочерняя тема nepalbuzz-child. В style.css все указал, как положено.
    И вот я хочу изменить файл default-options.php, скопированную в папку nepalbuzz-child/inc. Но чтобы изменение вступило в силу, мне придется скопировать туда и core.php и указать ссылку на него в function.php.
    Но ведь в этом core.php содержатся ссылки и на другие файлы в родительской теме и в nepalbuzz-child их нет. Придется их все перенаправлять в родительскую тему?
    Короче, возникает путаница со ссылками.
    А если просто, не мудрствуя, скопировать ВСЕ содержимое родительской темы в дочернюю? Не возникнет ли проблем? Будут ли файлы меняться при обновлении темы? И обязательно ли при этом указывать в style.css родительскую тему?

    1. Максим Зайцев (автор)

      Здравствуйте, Alexandros. Подходов в разработке тем много, сказать почему разработчики сделали именно не могу, значит были причины. Вы можете скопировать файлы в дочернюю тему и работать с ними там, обновления на них влиять не будут. Родительскую тему указывать в файле стилей обязательно.

  20. Ольга

    Здравствуйте! Подскажите, пожалуйста, если я уже вносила изменения в Родительскую тему и хочу обновить её, то при создании Дочерней темы какие файлы мне нужно из Рт переместить в Дт, чтобы мои, ранее сделанные, изменения в Родительской теме не потерялись при обновлении?
    И ещё вопрос:
    — после установки Дочерней темы сайт будет отображаться с новым дочерним урлом?

    1. Максим Зайцев (автор)

      Здравствуйте, Ольга. В дочерную тему нужно перенести те файлы, в которых были сделаны изменения. И строго соблюсти пути при создании папок, они должны быть точно так же расположены, как в родительской. УРЛ никак не изменится при создании дочерней темы.

  21. Sveta

    Здравствуйте! Подходит, установить дочернюю тему, чтобы проверять плагины, обновления?

    1. Максим Зайцев (автор)

      Здравствуйте! Для этих целей лучше использовать тестовый сайт на поддомене. Вот статья на эту тему: https://1zaicev.ru/kak-sozdat-poddomen-i-ustanovit-na-nego-cms/

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