Если вы правите CSS, шаблоны или functions.php прямо в родительской теме, обновление почти наверняка сотрёт эти изменения. Дочерняя тема решает именно эту задачу: вы оставляете родительскую тему как основу, а свои правки переносите в отдельную папку, которая не затрагивается обновлениями.
Это нормальный рабочий сценарий для WordPress, когда нужно безопасно менять внешний вид сайта, дорабатывать разметку отдельных шаблонов или подключать собственные функции без риска потерять всё после очередного апдейта темы.
Что такое дочерняя тема и когда она нужна
Дочерняя тема, или child theme, наследует стили и шаблоны родительской темы, но позволяет переопределять только нужные файлы. WordPress сначала ищет изменения в дочерней теме, а если нужного файла там нет — берёт его из родительской.
Такой подход нужен, если вы:
- добавляете или меняете CSS;
- правите отдельные шаблоны, например
header.php,footer.php,single.phpили шаблон страницы; - добавляете свои функции через
functions.phpдочерней темы; - не хотите терять изменения после обновления родительской темы.
Если вам нужно только немного подправить цвета, отступы или шрифты, иногда достаточно настроек темы или дополнительного CSS в кастомайзере. Но как только вы начинаете менять шаблоны или подключать логику, дочерняя тема становится правильным вариантом.
Что нужно подготовить перед созданием child theme
Перед началом проверьте три вещи.
- У вас есть доступ к файлам сайта. Подойдёт FTP, файловый менеджер хостинга или доступ по SSH.
- Вы знаете, какая тема сейчас активна. Дочерняя тема создаётся именно для конкретной родительской темы.
- Есть резервная копия. Это особенно важно, если вы будете менять шаблоны или
functions.php. Ошибка в PHP-коде может временно сломать сайт.
Если сайт уже работает в продакшене, лучше сначала создать дочернюю тему на тестовой копии или хотя бы подготовить способ быстро откатить изменения.
Как создать дочернюю тему вручную
Самый надёжный способ — создать отдельную папку в wp-content/themes и добавить туда минимум два файла: style.css и functions.php. Название папки может быть любым, но лучше делать его понятным, например mytheme-child.
В style.css обязательно укажите служебный заголовок темы. Он нужен WordPress, чтобы распознать child theme и связать её с родительской.
Пример style.css:
/*
Theme Name: MyTheme Child
Template: mytheme
Version: 1.0
*/Здесь Template — это имя папки родительской темы, а не её название в админке. Это частая ошибка: если указать не ту папку, WordPress не увидит связь между темами.
Дальше создайте functions.php. В нём обычно подключают стили родительской темы. Для современных тем правильнее использовать wp_enqueue_style(), а не копировать стили вручную.
Пример functions.php:
<?php
add_action( 'wp_enqueue_scripts', 'mytheme_child_enqueue_styles' );
function mytheme_child_enqueue_styles() {
wp_enqueue_style(
'mytheme-parent-style',
get_template_directory_uri() . '/style.css'
);
}
Этот код подключает style.css родительской темы. Если у дочерней темы есть собственный style.css, WordPress загрузит и его тоже, но порядок подключения зависит от вашей темы и кода. На практике этого часто достаточно для небольших правок. Если тема использует отдельные сборки CSS, иногда нужно подключать не style.css, а основной файл стилей родителя — это зависит от конкретной темы.
Как включить дочернюю тему в админке
После создания файлов откройте админку WordPress и перейдите в раздел Внешний вид → Темы. Там должна появиться новая тема с названием, которое вы указали в style.css.
Перед активацией проверьте:
- папка дочерней темы лежит в
wp-content/themes; - в
style.cssкорректно указанTemplate; - в папке есть хотя бы
style.cssиfunctions.php; - родительская тема установлена на сайте.
Если тема не отображается, почти всегда проблема в неправильном значении Template или в том, что файлы лежат не в той папке.
Как безопасно менять CSS через дочернюю тему
Самый простой сценарий — добавить свои правила в style.css дочерней темы. Это удобно, когда нужно изменить отступы, цвет кнопок, размер шрифта, поведение блоков на мобильных устройствах.
Например, если нужно изменить цвет ссылок:
a {
color: #1e73be;
}
a:hover {
color: #0f4c81;
}Плюс дочерней темы в том, что вы не трогаете файлы родителя. После обновления темы ваши стили останутся на месте.
Если изменений немного, можно использовать и раздел Внешний вид → Настроить → Дополнительные стили. Но как только CSS становится больше и требует структуры, лучше перенести его в дочернюю тему, чтобы не держать правки в настройках, которые сложнее версионировать и переносить между сайтами.
Как переопределять шаблоны WordPress
Чтобы изменить разметку, скопируйте нужный шаблон из родительской темы в дочернюю и правьте уже копию. WordPress возьмёт файл из child theme вместо оригинала.
Чаще всего переопределяют такие файлы:
header.php;footer.php;single.php;page.php;archive.php;- файлы шаблонов частей темы, например
template-parts.
Если в теме используется иерархия шаблонов WordPress, можно не копировать весь файл, а заменить только нужный шаблонный фрагмент. Это особенно полезно, когда нужно изменить вывод заголовка, блока автора или метаданных записи.
Здесь важно не копировать лишнее. Чем больше файлов вы без необходимости переносите в child theme, тем сложнее потом обновлять родительскую тему и отслеживать, что именно вы изменили. Переопределяйте только то, что действительно нужно менять.
Как добавлять свои функции через functions.php
functions.php дочерней темы подходит для небольших доработок: подключить скрипт, изменить длину анонса, добавить поддержку миниатюр, зарегистрировать область виджетов или изменить поведение темы через хуки WordPress.
Например, чтобы добавить поддержку миниатюр, можно использовать такой код:
<?php
add_action( 'after_setup_theme', 'mytheme_child_setup' );
function mytheme_child_setup() {
add_theme_support( 'post-thumbnails' );
}
Но здесь есть важный нюанс: если родительская тема уже включает нужную поддержку, повторно добавлять её не нужно. Перед тем как писать код, проверьте, не делает ли это сама тема.
Ещё одна практическая рекомендация: не переносите в functions.php дочерней темы большой объём логики, если она не связана с оформлением. Для сложных доработок лучше вынести код в небольшой плагин. Тогда он не пропадёт, если вы смените тему в будущем.
Как проверить, что дочерняя тема работает правильно
После активации child theme проверьте три вещи.
- Стили применяются. Измените заметное правило в
style.css, например цвет текста, и убедитесь, что на сайте оно отработало. - Шаблон переопределяется. Временно добавьте в копию шаблона заметный HTML-комментарий или тестовый текст и посмотрите, появился ли он на странице.
- Сайт не выдаёт ошибок. Если после правок страница стала белой или появилась ошибка PHP, значит проблема в коде
functions.phpили в синтаксисе шаблона.
Если вы редактируете PHP-файлы, полезно включить отладку на тестовом сайте. На рабочем проекте это делают осторожно, чтобы не показывать посетителям технические сообщения.
Типичные ошибки при создании child theme
Чаще всего проблемы возникают не из-за самой идеи дочерней темы, а из-за мелочей в настройке.
- Неверный
Templateвstyle.css. WordPress не находит родительскую тему. - Папка дочерней темы названа как угодно, но файлы лежат не там. WordPress читает только
wp-content/themes. - Скопирован весь
functions.phpродителя вместо добавления своих функций. Так легко сломать логику темы при обновлении. - Изменён не тот шаблон. В WordPress один и тот же экран может использовать несколько файлов по иерархии шаблонов.
- Стили подключены дважды или в неправильном порядке. Из-за этого часть правил не срабатывает так, как вы ожидаете.
Если что-то не работает, сначала проверьте структуру папок и имена файлов, а уже потом ищите проблему в CSS или PHP-коде.
Когда дочерняя тема не лучший вариант
Child theme — правильное решение для правок темы, но не для всего подряд. Если вы просто хотите добавить пару строк CSS, иногда проще использовать поле дополнительного CSS. Если нужно добавить функциональность, не связанную с оформлением, лучше написать мини-плагин или использовать отдельный плагин.
Дочерняя тема особенно полезна тогда, когда вы меняете именно внешний вид и шаблоны, а не строите отдельную систему поверх WordPress. В этом сценарии она даёт понятную структуру и защищает ваши правки от обновлений родительской темы.
Если действовать аккуратно, дочерняя тема становится самым надёжным способом дорабатывать сайт без постоянного страха, что очередное обновление всё сломает или откатит. Для владельца сайта это означает предсказуемость, а для разработчика — нормальную точку опоры, когда нужно менять шаблон, CSS и отдельные функции без лишнего риска.