Дочерняя тема WordPress — зачем она и как ее сделать

Разработчики WordPress всегда заботились об удобстве своих пользователей. Поэтому разработка сайтов на этой CMS имеет низкий порог вхождения - практически любой новичок сможет во всем разобраться. Как бы хороша ни была выбранная тема, всегда есть моменты, которые необходимо поправить. И зачастую такие правки вносятся непосредственно в файлы темы. Однако такие правки необходимо вносить с умом. Дочерняя тема позволяет вносить правки безболезненно. 

Статья подготовлена Александром - далее повествование будет идти от его имени.

Оглавление

Для чего нужна дочерняя тема

Дочерняя тема в WordPress предназначена как дополнение к основной (родительской) теме, которую вы используете на своем сайте. Основной ее смысл - возможность редактирования файлов с сохранением изменений при обновлении родительской темы. Дочерняя тема работает по принципу замены родительских файлов на свои. Например, если в дочерней теме создать файл header.php, то в подключится файл дочерней темы, а не родительской.

Исключением является файл function.php. В этом случае подключаются оба файла: сначала файл в родительской теме, а после в дочерней.

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

Как подключить дочернюю тему

Для начала создайте папку с вашей будущей дочерней темой. Желательно назвать папку так, чтобы сразу понимать, что в ней расположена дочерняя тема. К примеру, назовите папку р_тема-child или р_тема-dochka, где р_тема - название выбранной вами темы.

Папка должна располагаться в директории "ВАШ_САЙТ/wp-content/themes/"

Чтобы дочерняя тема заработала, в ней должно быть файл style.css - именно этот файл регистрирует дочернюю тему. Поэтому в папке с дочерней темой создайте этот файл и откройте его. Необходимо указать 2 строчки:

  • Theme Name: название дочерней темы, которое будет отображаться в разделе "Внешний вид ==> Темы"
  • Template: название родительской темы
Theme Name и Template необходимо указывать как комментарии. То есть: /* Theme Name: ... Template: ... */

Все, теперь у вас есть дочерняя тема. Однако на текущем этапе все стили родительской темы затираются стилями дочерней. Есть 2 вариант решения этой проблемы:

  • После комментариев в файле style.css (дочерней темы) добавить строчку: @import url("../р_тема/style.css")
  • В дочерней теме создать файл function.php и внести в него код (под спойлером ниже)

Спойлер

add_action('wp_enqueue_scripts', 'my_theme_styles' );

function my_theme_styles() {

wp_enqueue_style('parent-theme-css', get_template_directory_uri() .'/style.css' );

}

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

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

Подключили дочернюю тему - что дальше

Теперь вы вольны делать необходимые изменения в файлах темы. Для этого копируете интересующие файлы (footer.php, header.php и т.д.) в дочернюю тему и редактируете их. Если тема обновится - ваши изменения сохранятся (дочерняя тема то не обновляется)

Важно! При копировании файлов в дочернюю тему для дальнейшего редактирования создавайте такой же путь до них, как в родительской теме. К примеру, если у файл лежит в директории: р_тема/template/head, то в дочерней теме файл должен располагаться по аналогичному пути: д_тема/template/head