Дочерняя тема
Оригинальное название: child theme
Коротко
Отдельная тема, которая берёт всё у родительской и хранит только ваши изменения: обновление родителя приходит, а правки остаются на месте.
Что такое «Дочерняя тема»
Готовые темы регулярно обновляются: исправляют ошибки, закрывают уязвимости, добавляют совместимость с новыми версиями WordPress. Если править файлы темы напрямую, первое же обновление сотрёт все доработки. Дочерняя тема решает это разделением: исходник остаётся нетронутым, а свои шаблоны, стили и функции кладут в отдельную папку. Механизм работает и с классическими, и с блочными темами.
Минимальная дочерняя тема
Достаточно папки с файлом style.css, в заголовке которого поле Template указывает имя папки родителя:
/*
Theme Name: Astra Child
Template: astra
*/
// functions.php дочерней темы
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
} );
Подключать стили родителя нужно не всегда: многие темы делают это сами. Это видно по исходному коду страницы — если style.css родителя уже есть, второй раз его грузить не надо.
Как файлы наследуются
- Шаблоны подменяются целиком: если в дочерней теме есть
single.php, WordPress возьмёт его, а не родительский. Поиск идёт по иерархии шаблонов, и на каждом шаге дочерняя тема проверяется первой. functions.phpне подменяется: загружаются оба, сначала дочерний, потом родительский.- В блочных темах
theme.jsonдочерней темы сливается с родительским, поэтому в нём пишут только отличия.
Для путей есть две пары функций: get_stylesheet_directory() указывает на дочернюю тему, get_template_directory() — на родительскую. Их путаница — частая причина «не подключается мой файл».
Чего не делать
Копировать в дочернюю тему все шаблоны родителя «на всякий случай» — тогда обновления до них не дойдут, и смысл схемы теряется. Переносят только те файлы, которые действительно меняются. Многое вообще не требует копирования шаблонов: изменить вывод можно хуками в functions.php. Такой аккуратный подход — основа доработки сайтов на WordPress, которые потом нормально обновляются.

