Дочерние темы в WordPress — как и зачем их использовать
Опубликовано: 2016-04-29Весь смысл WordPress в том, чтобы дать людям возможность создавать, изменять и настраивать свои собственные сайты или блоги. Это то, для чего всего десять лет назад вам нужно было нанять профессионального дизайнера/разработчика.
В настоящее время вы можете позаботиться о своем сайте самостоятельно и сделать так, чтобы он выглядел так, как вы хотите.
Но что, если вы хотите пойти дальше того, что позволяет вам делать WordPress Customizer ? Что делать, если вы хотите изменить что-то в своей текущей теме WordPress немного более индивидуально?
Ну, вот где в игру вступают дочерние темы.
Зачем использовать дочерние темы
Начнем с другой стороны медали:
Недостаток № 1, если вы *не* используете дочернюю тему, а вместо этого выполняете какие-либо модификации вашей текущей (обычной) темы, заключается в том, что все эти модификации исчезнут, если вы когда-либо обновите тему.
Теперь, что я имею в виду под модификациями :
- любые ручные изменения кода, сделанные в любом из файлов PHP темы,
- любые модификации файла style.css ,
- любые новые файлы, которые вы могли поместить в каталог темы (включая файлы PHP, файлы CSS, даже графику, буквально все) — это обычная проблема, если у вас есть какие-либо пользовательские шаблоны страниц.
Итак, чтобы еще раз подчеркнуть это, все вышеперечисленное исчезнет, как только вы обновите свою тему.
Но почему это плохо?
Что ж, проблема, возможно, не такая серьезная, если используемая вами тема не обновлялась, как никогда. Тем не менее, большинство качественных тем WordPress, как правило, обновляются немного чаще. И это особенно актуально для тем WordPress по умолчанию (например, Twenty Fifteen) — они обновляются всякий раз, когда выпускается новая версия ядра WordPress.
В такой ситуации вы не хотите пропустить все новые вещи и исправления, которые поставляются с этими обновлениями. По сути, они заставляют ваш сайт правильно работать с новыми версиями WordPress, а также улучшают безопасность всего этого (исправление общих дыр в безопасности и ошибок).
Но есть еще кое-что. Использование дочерних тем также дает вам дополнительную ценность в виде лучшей организации работы.
Дело в том, что если вы попытаетесь отредактировать что-либо в своей текущей теме WordPress, более чем легко что-то испортить. Например, вы можете случайно стереть какую-то важную строку кода или даже целый файл и т. д.
С дочерними темами все модификации организованы гораздо лучше. Каждый файл в каталоге дочерней темы содержит только ваш собственный код, поэтому больше не нужно задаваться вопросом «изменил ли я файл X или нет?»
Как создать свою первую дочернюю тему
Эта часть действительно проста и почти не требует кодирования. Но сначала несколько общих рекомендаций:
- Каждая тема может быть родительской темой. Другими словами, вы можете создать дочернюю тему для любой темы, которая у вас уже есть.
- Дочерние темы зависят от того, что родитель делает большую часть своих «вещей». В самом простом случае пустая дочерняя тема берет весь свой код, дизайн, стили и т. д. непосредственно от родителя, ничего не меняя.
- Дочерняя тема требует присутствия родителя для работы. Как только вы удалите родительскую тему, ваша дочерняя тема больше не будет работать.
- Как упоминалось ранее, вы можете обновить родительскую тему и не потерять ни одну из своих модификаций.
- В случае чего, вы можете в любой момент переключиться на родительскую тему и вернуться к исходной версии своей темы.
Теперь о том, как это сделать. Для дочерней темы нужно всего несколько вещей:
- новый каталог внутри
wp-content/themes
с уникальным именем/slug, как бы вы его ни называли, - файл таблицы стилей внутри этого нового каталога —
style.css
, - и файл
functions.php
.
Вот пример дочерней темы, которую я создал для предыдущей темы WordPress по умолчанию — Twenty Fifteen. Я начал с создания каталога с именем t15-child
:

Затем я создал два новых файла в этом каталоге и назвал их style.css
и functions.php
:
Давайте сначала отредактируем файл style.css
. Вот мой:
/* Theme Name: T15 child KK Theme URI: http://karol.cc/ Author: Karol K Author URI: http://karol.cc/ Template: twentyfifteen Description: My child of twentyfifteen Version: 1.0.0 License: GNU General Public License v2.0 License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: t15-child */
Ничего особенного, как видите. Здесь выделены две важные строки:
- Имя темы — имя новой дочерней темы, которое будет отображаться в wp-admin в разделе « Внешний вид/Темы ».
- Template — самая важная строка здесь — своим слагом указывает на родительскую тему.
Затем давайте перейдем к файлу functions.php
. Единственное, что у меня есть, это:
<?php function theme_enqueue_styles() { $parent_; wp_enqueue_style($parent_style, get_template_directory_uri().'/style.css'); wp_enqueue_style('child-style', get_stylesheet_directory_uri().'/style.css', array($parent_style)); } add_action('wp_enqueue_scripts', 'theme_enqueue_styles');
Это просто новая функция. Он заботится о двух вещах:
- он извлекает исходную таблицу стилей родительской темы и
- он «включает» новый файл style.css , так что вы можете выполнять дальнейшие изменения дизайна темы в этом файле.
Другие важные вещи, о которых следует помнить:
- Прямо сейчас вы можете свободно изменять свой новый файл
style.css
. Какой бы новый класс вы там ни разместили, или какой бы старый класс вы ни изменили, это повлияет на ваш веб-сайт и его внешний вид. - Вы можете добавить другие файлы PHP в каталог вашей дочерней темы. Эти файлы могут быть совершенно новыми — например, для новых пользовательских шаблонов — или они могут заменять стандартные файлы родительской темы. Например, вы можете создать совершенно новую версию файла single.php , чтобы управлять тем, как отображаются ваши сообщения в блоге.
- Все, что вы поместите в свой новый файл
functions.php
, будет выполняться аналогично тому, как работает родной файл functions.php в родительской теме.
Вы уже создали свою дочернюю тему?
На этом этапе ваша работа выполнена, и теперь у вас есть базовая дочерняя тема, которую вы можете использовать для внесения дальнейших изменений в свой веб-сайт. Или вы можете просто использовать эту новую дочернюю тему, чтобы убедиться, что любые настройки, которые вы уже сделали, останутся в будущих обновлениях родительской темы.
Что вы здесь думаете? Планируете ли вы использовать дочернюю тему на своем сайте или блоге WordPress?