
Дочерняя тема 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