Если вы правите файлы родительской темы напрямую, любое обновление может затереть ваши изменения. Дочерняя тема решает именно эту задачу: она позволяет менять шаблоны, стили и часть логики, не трогая исходную тему. Но дочерняя тема нужна не всегда — иногда проще и правильнее обойтись настройками, дополнительным CSS или отдельным плагином.
Ниже разберём, когда дочерняя тема действительно оправдана, как собрать её вручную и как проверить, что она работает так, как вы ожидаете.
Когда дочерняя тема нужна, а когда нет
Дочерняя тема имеет смысл, если вы хотите:
- переопределить шаблонный файл родительской темы, например
header.php,single.php,page.phpили часть шаблона в папкеtemplate-parts; - добавить или изменить стили, не рискуя потерять их после обновления;
- подключить собственные функции через
functions.phpдочерней темы; - аккуратно доработать уже выбранную тему под проект, а не писать всё с нуля.
Дочерняя тема не лучший инструмент, если вам нужно:
- добавить функциональность, которая должна жить независимо от оформления сайта;
- сделать небольшую правку, которую можно решить через настройки темы или блоков;
- менять только CSS в минимальном объёме — иногда достаточно поля «Дополнительные стили» в настройках или отдельного CSS-файла, если тема это поддерживает.
Практическое правило простое: если изменение относится к внешнему виду и структуре шаблонов текущей темы, дочерняя тема подходит. Если изменение должно пережить смену темы, лучше выносить его в плагин.
Из чего состоит дочерняя тема
Для классической темы WordPress обычно достаточно двух файлов:
style.css— обязательный файл с заголовком темы;functions.php— файл для подключения стилей и собственных функций.
Иногда добавляют шаблонные файлы, которые нужно переопределить. WordPress сначала ищет файл в дочерней теме, а если его там нет — берёт из родительской. Именно на этом и строится механизм наследования.
Важно понимать ограничение: этот способ относится к классическим темам. Если вы работаете с блочной темой на Full Site Editing, структура будет другой — там используются шаблоны и части шаблонов в формате HTML, а не привычные PHP-шаблоны. Для такой темы дочерняя тема тоже возможна, но логика работы отличается, и не все старые приёмы переносятся напрямую.
Как создать дочернюю тему вручную
Надёжнее всего делать это вручную, особенно если вы хотите понимать, что именно происходит. Предположим, у вас установлена родительская тема parent-theme. Создайте в каталоге wp-content/themes/ новую папку, например parent-theme-child.
Внутри неё создайте файл style.css с таким заголовком:
/*
Theme Name: Parent Theme Child
Template: parent-theme
Version: 1.0
*/
Ключевая строка здесь — Template. Она должна содержать имя папки родительской темы, а не её название в админке. Ошибка в этом поле — самая частая причина, почему WordPress не распознаёт дочернюю тему.
Дальше добавьте functions.php. В нём нужно подключить стили родительской темы и, при необходимости, стили дочерней темы. Для современных версий WordPress и нормальной работы с очередностью загрузки лучше использовать wp_enqueue_scripts:
<?php
add_action( 'wp_enqueue_scripts', 'parent_theme_child_enqueue_styles' );
function parent_theme_child_enqueue_styles() {
wp_enqueue_style(
'parent-theme-style',
get_template_directory_uri() . '/style.css',
array(),
wp_get_theme( 'parent-theme' )->get( 'Version' )
);
wp_enqueue_style(
'parent-theme-child-style',
get_stylesheet_uri(),
array( 'parent-theme-style' ),
wp_get_theme()->get( 'Version' )
);
}
Здесь get_template_directory_uri() указывает на родительскую тему, а get_stylesheet_uri() — на текущую активную тему, то есть на дочернюю. Зависимость array( 'parent-theme-style' ) помогает гарантировать, что стили дочерней темы загрузятся после родительских.
На практике имя хука и handle можно назвать как угодно, но лучше делать их понятными и уникальными. Если родительская тема уже сама подключает стили через functions.php, иногда приходится подстраиваться под её способ загрузки, чтобы не получить дублирование CSS. Это зависит от конкретной темы.
Как переопределить шаблон родительской темы
Главное преимущество дочерней темы — возможность заменить отдельный шаблон без правки исходников. Допустим, вам нужно изменить вывод записей в одиночной статье. Тогда вы копируете файл single.php из родительской темы в дочернюю и редактируете уже его.
WordPress будет использовать файл из дочерней темы, если он существует. Это работает и для других шаблонов: page.php, archive.php, 404.php, а также для файлов внутри template-parts, если родительская тема подключает их через get_template_part().
Но здесь есть важный нюанс: не стоит копировать в дочернюю тему всё подряд. Если вы перенесёте слишком много файлов, то после обновления родительской темы не получите её исправления и улучшения в этих шаблонах. Обычно имеет смысл переопределять только то, что действительно нужно изменить.
Что можно и что нельзя делать в functions.php дочерней темы
functions.php дочерней темы — это не отдельный плагин. Он загружается вместе с темой и живёт в её контексте. Поэтому туда удобно добавлять:
- подключение стилей и скриптов;
- регистрацию меню, сайдбаров и мини-настроек, если они относятся к оформлению;
- фильтры и действия, связанные с шаблонами темы;
- небольшие функции, которые нужны только этому дизайну.
А вот функциональность, которая должна остаться при смене темы, лучше выносить в плагин. Например, если вы добавляете собственный тип записей, критичную бизнес-логику или интеграцию с внешним сервисом, дочерняя тема — не лучшее место. Иначе при смене оформления вы потеряете эту часть сайта.
Ещё одна практическая ошибка — пытаться в functions.php дочерней темы переопределить уже объявленную функцию родительской темы с тем же именем. Это часто приводит к фатальной ошибке. Если родительская тема не использует условные проверки вроде function_exists(), безопаснее подключать свою логику через хуки, а не дублировать имена функций.
Как проверить, что дочерняя тема работает правильно
После активации дочерней темы проверьте три вещи.
- В админке в разделе «Внешний вид» активна именно дочерняя тема.
- На сайте загружаются стили родительской темы и ваши изменения поверх них.
- Если вы переопределяли шаблон, убедитесь, что отображается именно изменённый файл, а не исходный из родителя.
Самый простой тест для шаблона — добавить заметный текст в копию файла, например в single.php, и открыть запись на сайте. Если текст появился, значит WordPress использует шаблон из дочерней темы.
Для стилей можно временно изменить цвет заголовка или фона в style.css дочерней темы. Если изменений нет, проверьте:
- правильно ли указан
Templateвstyle.css; - совпадает ли имя папки родительской темы с тем, что указано в
Template; - не кеширует ли сайт CSS на уровне плагина, сервера или CDN;
- не переопределяет ли стили более специфичный селектор из родительской темы.
Если после активации сайт показывает белый экран или ошибку, сначала проверьте functions.php. Обычно проблема в синтаксисе PHP или в конфликте имён функций. На рабочем сайте такие правки лучше делать через тестовую копию или хотя бы с доступом к резервной копии.
Типичные ошибки при создании дочерней темы
На практике чаще всего ломают не сам механизм WordPress, а мелочи в структуре файлов.
- Неверный
Templateвstyle.css. WordPress не видит родительскую тему, если указано не имя папки, а название темы. - Подключение стилей напрямую через
<link>. Так сложнее управлять зависимостями и очередностью загрузки. В WordPress лучше использоватьwp_enqueue_style(). - Слепое копирование всех файлов темы. В итоге вы теряете смысл обновлений родителя.
- Перенос логики сайта в тему. Это делает сайт зависимым от оформления.
- Редактирование на боевом сайте без копии. Для PHP-ошибки достаточно одной лишней запятой, чтобы сайт перестал открываться.
Когда дочерняя тема — не лучший выбор
Если вы делаете сайт на блочной теме, сначала проверьте, действительно ли вам нужна именно дочерняя тема, а не настройка шаблонов через редактор сайта. Если задача касается только небольшого визуального изменения, иногда быстрее и безопаснее использовать дополнительные стили или настройки темы.
Если же вы строите проект, где оформление будет меняться, а функциональность должна оставаться стабильной, разделяйте ответственность: тема отвечает за внешний вид, плагин — за логику. Это самый устойчивый подход для поддержки сайта в долгую.
Дочерняя тема нужна не ради формальности, а когда вы осознанно хотите дорабатывать выбранную тему без потери изменений при обновлениях. Если сделать её аккуратно — с правильным style.css, подключением через wp_enqueue_scripts и точечным переопределением шаблонов — она становится удобным и предсказуемым инструментом. Если же использовать её как место для всего подряд, поддерживать сайт станет только сложнее.