Главная Часть 1. Создание блога Глава 8. Техническая часть Урок 171. Дочерняя тема WordPress. Зачем она нужна?

Урок 171. Дочерняя тема WordPress. Зачем она нужна?

Давно хотел написать про такое явление, как дочерняя тема WordPress, однако время появилось только сейчас. Из этой статьи Вы узнаете, как можно изменять тему (стили, функции и тд) на самом деле вовсе не изменяя ее. Как изменить тему и не потерять изменения при обновлении темы. В общем будет очень интересно и познавательно!

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

Дочерняя тема - эта "пустышка", которая наследует внешний вид и функции нужной Вам темы. Другими словами, дочерняя тема - это копия любой нужной Вам темы. Зачем нам копия? Эту копию Вы устанавливаете, как основную тему, и можете изменять как Вам надо. При этом оригинал останется без изменений! И что более важно - если файлы оригинальной темы будут обновлены - будет обновлена и эта Ваша копия, но все стили и функции, которые Вы успели ей прописать не исчезнут!

Если кто не понял, разберем на примере. У нас есть тема Alpha. Эту тему часто обновляют. Допустим мне нужен дополнительный блок в сайдбаре. Я открываю нужный файл, вставляю туда блок, настраиваю стили. На следующий день тему обновляют, и мой блок пропал, все стили, что я прописал - тоже пропали. Это неприятно. Поэтому в wordpress реализовали дочернюю тему.

Я создаю копию темы Alpha. Называю ее как угодно, например Beta. Устанавливаю и точно так же добавляю блок и стили куда мне нужно. И теперь когда обновляется тема Alpha, все нововведения в мою тему Beta так же попадают (т.к. все наследуется из родительской темы). Но в то же время все изменения, которые я добавил, так же остаются, не меняются и учитываются. Поэтому тема обновилась, а мои изменения остались. Все довольны!

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

Создается такая очень просто! Достаточно создать папку с названием, какое Вам нравится, в папке wp-content/themes. Т.е. в той папке, где лежат все темы, в том числе и нужная Вам. Создаем в этой новой папке файл style.css. Теперь в файл добавляем следующее:

Давайте немного разберем.

  • Theme name - название шаблона. Пишите какое хотите.
  • Template - должно быть того же названия, что и копируемый Вами шаблон
  • @import - свойство, которое импортирует себе все стили из темы. Путь так же должен быть прописан к той теме, которую хотите скопировать

После этого перейдите в админку, и выберите Внешний вид → Темы и активируйте свою новую тему. Перейдя на блог Вы не увидите абсолютно никаких различий с копируемой темой. Зато теперь Вы можете добавлять в только что созданный style.css свой набор стилей, и они никогда не удалятся, как бы не обновляли копируемую тему.

Практика работы с дочерней темой WordPress

Начнем с простого. Изменим у темы фон. Для этого добавим в наш style.css следующий код:

Вот что было:

дочерняя тема wordpressА вот что стало:

wpguru_lesson2

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

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

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

Как еще можно использовать дочернюю тему?

Если Вы часто меняете темы, а функции Вы добавляете одни и те же (например, чтобы скрыть версию движка в шапке), то можете создать себе такой файл functions.php и просто в следующий раз, когда скачаете новую тему, в файле style.css измените название и адрес на нее. Таким образом сразу создастся дочерняя тема для Вашей новой темы, при этом все функции останутся!

Итог

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

Полезные статьи Вам на почту!

Нас более 700 человек!

Комментарии

vladimir
0

Блин, думал я много про вордпресс знаю, оказывается ничего( никогда даже не слышал и понятия не имел, что такое дочерняя тема, да ещё и на вордпресс. Интересно очень! А в чем будет преимущество, если использовать на обычной, не обновляемой теме? Или никаких преимуществ не будет?

30.12.2015
Sly
0

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

30.12.2015
Дарья
1

С новым годом! Дочерняя тема, кстати, еще может служить как полигон для тестов. Нужно проверить функцию - добавляете ее в дочернюю тему и смотрите, как она будет работать именно с вашим шаблоном! Очень удобно. Иначе высок риск того, что настройки шаблона слетят и его придется переустанавливать.

31.12.2015
Sly
0

Спасибо и тебя!

31.12.2015
Валерий Андропов
1

Как-то видел статью про дочернюю тему на вордпресс, прочитал 2 абзаца, ничего не понял, думал это очень сложная тема для программистов. Оказалось все легче легкого. Спасибо за доступное объяснение!

02.01.2016

Оставить комментарий

Поделиться