К основному содержимому

Дочерняя тема WordPress: создание и настройка

WordPress · 19.04.2026 · 5 мин чтения
Иллюстрация к статье «Дочерняя тема WordPress: создание и настройка»

Дочерняя тема (child theme) — это отдельная тема WordPress, которая наследует весь функционал и стили родительской темы, но позволяет безопасно вносить изменения. Без дочерней темы любое обновление родительской темы затрёт ваши правки.

Зачем нужна дочерняя тема

Когда вы правите файлы родительской темы напрямую, следующее обновление затрёт все изменения. Дочерняя тема решает эту проблему: ваши изменения хранятся отдельно и не теряются при обновлениях.

✅ Всегда используйте дочернюю тему при любой кастомизации — даже если хотите изменить одну строку CSS.

Создание дочерней темы вручную

Создайте папку wp-content/themes/your-child-theme/ и два файла:

style.css

/*
Theme Name:   My Child Theme
Template:     twentytwentyfour
Description:  Child theme for Twenty Twenty-Four
Version:      1.0
*/

/* Здесь ваши кастомные стили */
.site-header {
    background: #1a1a2e;
}

functions.php

<?php
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');
function child_theme_enqueue_styles() {
    $parent_style = 'parent-style';
    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),
        wp_get_theme()->get('Version')
    );
}
⚠️ Template должен совпадать с именем папки родительской темы (например, twentytwentyfour).

Структура дочерней темы

ФайлНазначение
style.cssМетаданные темы + ваши стили
functions.phpПодключение стилей родителя + хуки
screenshot.pngПревью в панели тем (880×660 px)
template-parts/Переопределённые части шаблона

Переопределение шаблонов

Скопируйте нужный файл из родительской темы в папку дочерней с тем же путём — WordPress автоматически использует файл из дочерней темы:

# Например, переопределить header.php:
cp wp-content/themes/twentytwentyfour/header.php    wp-content/themes/my-child-theme/header.php
# Теперь редактируйте дочерний файл
💡 Подключайте дочернюю тему через Админ → Внешний вид → Темы. Убедитесь, что родительская тема тоже установлена.

Частые ошибки дочерних тем

Сообщение или симптомПричина
The parent theme is missingВ поле Template в style.css указано неверное имя папки родительской темы — опечатка или неверный регистр
Стили дочерней темы не применяютсяСтиль дочерней темы подключён с тем же приоритетом, что и родительский, и родительский загружается позже
Fatal error: Cannot redeclare functionФункция с таким же именем уже объявлена в родительской теме — нужно переименовать функцию в дочерней теме
После смены темы сайт выглядит без стилейАктивирована дочерняя тема, но родительская тема была удалена из wp-content/themes

Дочерняя тема vs плагин для кастомизации

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

Когда дочерняя тема не подходит

  • Правки не касаются шаблонов и стилей темы, а добавляют функциональность (произвольные типы записей, интеграции) — для этого нужен отдельный плагин
  • Родительская тема — конструктор с собственным визуальным редактором, который не читает файлы дочерней темы
  • Планируется полная смена темы в ближайшее время — переопределённые шаблоны придётся переписывать заново под другую тему
  • Изменения нужны только в контенте страниц, а не в коде — для этого достаточно редактора блоков

Проверка результата

# Убедиться, что активна именно дочерняя тема
wp theme list --status=active --fields=name,status

# Проверить, что style.css дочерней темы реально отдаётся браузеру
curl -sI https://example.com/wp-content/themes/my-child-theme/style.css

Если wp theme list показывает активной родительскую тему — активация дочерней не прошла, вернитесь к шагу с Template в style.css. Смежные материалы: ускорение WordPress и команды WP-CLI.

Дочерние темы и конструкторы вроде Elementor/Divi

Если сайт собран в визуальном конструкторе страниц, часть кастомизаций (глобальные стили, шаблоны шапки и подвала) хранится не в файлах темы, а в базе данных самого конструктора. Дочерняя тема в этом случае по-прежнему полезна для правок style.css и functions.php, но не заменяет резервное копирование настроек конструктора — их нужно экспортировать отдельно через встроенный экспорт/импорт шаблонов, иначе перенос темы на другой сайт не перенесёт вёрстку, собранную в конструкторе.

Частые вопросы

Что произойдёт с сайтом, если случайно удалить родительскую тему, пока активна дочерняя?

Сайт останется без стилей и части функциональности: дочерняя тема хранит только изменения и сама по себе не содержит полного кода вёрстки — она подключает стили и шаблоны родителя через код в functions.php. Без родительской темы в папке тем WordPress не найдёт, что наследовать, и визуально сайт развалится, даже если дочерняя тема формально остаётся активной.

Нужна ли дочерняя тема для сайта, собранного в Elementor или Divi?

Да, но её роль ограничена: правки style.css и functions.php по-прежнему защищены от обновлений родительской темы. А вот глобальные стили, шаблоны шапки и подвала самого конструктора хранятся в базе данных, а не в файлах темы, поэтому дочерняя тема их не переживёт при переносе — такие настройки нужно экспортировать отдельно через встроенный инструмент конструктора.

Можно ли назвать функцию в дочерней теме так же, как в родительской?

Нет — если родительская тема уже объявила функцию с таким именем, попытка объявить её повторно в дочерней теме вызывает фатальную ошибку PHP о повторном объявлении. Решение простое: дать функции в дочерней теме уникальное имя с собственным префиксом и подключить её к нужному хуку через add_action или add_filter, а не полагаться на совпадение имени с родительской функцией.

Что делать, если нужно добавить произвольный тип записей или сложную функциональность, а не просто изменить стили?

Для функциональности вроде произвольных типов записей или интеграций дочерняя тема — не лучший инструмент: при смене темы такой код пропадёт вместе с ней. Логику подобного рода правильнее выносить в отдельный плагин, который переживёт смену любой темы, а дочернюю тему оставить только для стилей, вёрстки и переопределения шаблонов.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке