Дочерние темы – относительно новая концепция, получившая широкое распространение начиная с WordPress 2.7. Суть ее заключается в следующем: к основной используемой теме (родительской теме) добавляется другая, дочерняя тема, которая определяет внешний вид присутствующих в ней файлов шаблона (это могут быть файлы home.php, style.css, single.php и т.д.).
К примеру, вам нравится какая-либо определенная тема, но ее шрифты и цветовая гамма вас раздражают. Существует два способа решить эту проблему. Первый из них, самый очевидный, заключается в ручном редактировании файла style.css и добавлении нескольких шаблонов страниц. Вроде бы все верно, так зачем же другие способы? Вероятно, вы совершенно забыли про то, что все внесенные вручную изменения теряются при обновлении темы до новой версии. Следовательно, вам придется заново редактировать шрифты, цвета и шаблоны страниц, что довольно затруднительно, особенно в случае прошествия длительного времени с момента изменений. Безусловно, вы могли бы сделать примечания о внесенных изменениях, или восстановить более старые файлы, однако здесь важно помнить, что темы не стоят на месте, с каждой новой версией они постоянно дополняются и редактируются, в результате чего вам в лучшем случае придется потратить значительное время на коррекцию файлов в соответствии с пометками об изменениях, в худшем случае – совершить множество различных трюков, чтобы восстановить исходный вид.
Если вам не хочется вручную редактировать файлы с каждым обновлением версии темы, можно воспользоваться дочерними темами. Дочерняя тема всегда располагается в своей собственной папке, благодаря чему при обновлении версии исходной темы файлы дочерней темы не будут затронуты. Основная идея использования дочерней темы состоит в том, чтобы оградить стандартные функциональные возможности, базовый код и контент от каких-либо кардинальных изменений, которые могут утратиться в процессе обновления версии родительской темы.
Как работает дочерняя тема
Любая из имеющихся тем может послужить родителем для дочерней темы. Единственное важное требование к родительской теме – она должна быть расположена в папке wp-content/themes/ (иначе вы не сможете использовать ее файлы). Для того чтобы подключить дочернюю тему, папку с ней также нужно поместить в wp-content/themes/.
Допустим, дочерняя тема размещена в папке wp-content/themes/. Как показать, что эта тема является дочерней по отношению к родительской? Делается это просто – при помощи файла style.css. Всякий раз, когда будет вызван какой-либо из файлов шаблона, WordPress попытается отыскать его в пределах дочерней темы, и если такого не обнаружится, то он загрузит соответствующий файл оригинальной темы.
Рассмотрим файл style.css:
/*
Theme Name: Your Theme Name
Theme URI: http://your-theme-homepage.com
Description: Oh what a lovely description of your theme you'll put here!
Author: Your Name
Author URI: http://your-website.com
Template: If this is a child theme, you'll set the template theme's folder name here, otherwise
remove
Version: A version number
.
Any general information, license statements, plugin requirements, or any other information you
may want to share.
.
*/
Для того, чтобы объявить дочернюю тему, необходимо отредактировать пункт Template ее файла style.css. В этот пункт необходимо внести название папки, в которой располагается родительская тема. Стандартная WordPress тема обычно находится в папке wp-content/themes/default/, поэтому, если вы хотите указать ее в качестве родительской, то в файле style.css дочерней темы в раздел Template нужно будет ввести строку «default»:
Template: default
Теперь, когда ваша тема получила статус дочерней, можно попытаться изменить ее цвета и шрифты. Первое, с чего стоит начать, это определиться, стоит ли заменять целиком весь файл style.css родительской темы на аналогичный файл дочерней темы, или ограничиться внесением в него небольших косметических изменений. Наиболее вероятен второй случай, поэтому остановимся на нем. Все, что потребуется – это импортировать таблицу стилей родительской темы. Делается это при помощи тега @import:
@import url("../notesblog-core/style.css");
Просто добавьте под заголовком файла правила, которые необходимо заменить в дочерней теме, например:
@import url("../notesblog-core/style.css");
div#content { font-family: Georgia, Times New Roman, serif; }
ul.sidebar ( color: #444; }
Поскольку эти правила расположены в самом низу таблицы стилей, они переопределят те правила, которые присутствовали в файле родительской темы, благодаря чему вы и добьетесь нужного результата.
Полный файл стилей мог бы выглядеть так:
/*
Theme Name: Small Notes
Theme URI: http://notesblog.com/core/small-notes/
Description: This is Small Notes, a child theme for Notes Blog Core.
Author: Thord Daniel Hedengren
Author URI: http://thedengren.com
Template: notesblog-core
Version: 1.0
.
You need to have both Child Notes and Notes Blog Core in your wp-content/themes/ folder for this
theme to work.
.
*/
@import url("../notesblog-core/style.css");
div#content { font-family: Georgia, Times New Roman, serif; }
ul.sidebar ( color: #333; }
Помните про шаблоны страниц, которые вы хотели применить? Сделать это проще простого – достаточно всего лишь создать их в родительской теме и поместить в папку с дочерней темой. Каждый файл, присутствующий в дочерней теме, обладает высшим приоритетом, нежели аналогичные файлы родительской темы. Это означает, что даже если ваша родительская тема обладает файлом sidebar.php, загружен он будет все равно из дочерней темы. Если же вам не хочется менять его, то просто уберите файл sidebar.php из дочерней темы.
Дочерние темы и события
Если вы решили кардинально изменить тему в зависимости от какого-либо события (памятная дата, праздник и т.д.), то проще всего это сделать при помощи дочерних тем. Все изменения, которые понадобится внести, никак не затронут родительскую тему, и по прошествии времени можно будет легко и быстро вернуть все в изначальное состояние. Также дочерние темы идеально подходят для показа каких-либо объявлений или рекламных сообщений.