Дочерняя тема WordPress позволяет менять оформление и отдельные шаблоны, не правя файлы родительской темы. Это удобно, когда родительская тема регулярно обновляется, а ваши изменения должны сохраниться. Для простого изменения цветов через настройки тема-наследник может не понадобиться.
Что наследуется от родительской темы
Если дочерняя тема не содержит собственного переопределения, WordPress использует соответствующий шаблон родительской темы. Но functions.php дочерней темы не заменяет родительский файл: WordPress загружает оба. Поэтому бездумное копирование функций может вызвать ошибку повторного объявления.
Пример: минимальная дочерняя тема
Возьмём стандартную Twenty Twenty-Four. В каталоге wp-content/themes/ создайте папку my-wp-child, а в ней файл style.css:
/*
Theme Name: My WP Child
Description: Дочерняя тема для тестового проекта.
Template: twentytwentyfour
Version: 1.0.0
*/
Значение Template — это точное имя папки родительской темы, а не красивое название в интерфейсе. Если папка называется иначе, WordPress не распознает правильного родителя.
Важный момент: такой пример показывает минимальное наследование, а не готовый дизайн. Дополнительные стили и шаблоны добавляются по задаче.
Как установить
- Убедитесь, что Twenty Twenty-Four уже установлена.
- Поместите папку
my-wp-childвwp-content/themes/или упакуйте её как ZIP. - В админке откройте Внешний вид → Темы и активируйте
My WP Child. - Сравните главную и внутреннюю страницу с родительской темой.
Экспериментируйте сначала на staging-копии, а не на боевом сайте.
Нужно ли подключать CSS через functions.php
Это зависит от родительской темы. Некоторые темы уже загружают стили активной (дочерней) темы, другие — нет. Для блочных тем оформление часто задаётся через theme.json. Не добавляйте второй CSS-файл «на всякий случай», пока не проверили способ загрузки стилей родителя.
Если необходимо явно подключить ваш style.css, пример для functions.php дочерней темы:
<?php
add_action( 'wp_enqueue_scripts', 'my_wp_child_styles' );
function my_wp_child_styles() {
wp_enqueue_style( 'my-wp-child-style', get_stylesheet_uri(), array(), wp_get_theme()->get( 'Version' ) );
}
Это пример кода для дочерней темы, не для вставки в functions.php родительской темы. Если стили уже подключаются, второй вызов не нужен.
Особенности блочных тем
В блочной теме могут наследоваться theme.json, HTML-шаблоны и части шаблонов. При этом изменения, сделанные через редактор сайта и сохранённые в базе данных, могут иметь приоритет над файлами темы. При миграции проверьте не только файлы, но и пользовательские настройки редактора.
Когда дочерняя тема — не лучший вариант
Если нужно переписать практически все шаблоны, сложное наследование будет мешать сопровождению. Возможно, разумнее самостоятельная тема. Если задача относится к функциям сайта (CRM, API, формы), лучше отдельный плагин.
Справочник: Темы WordPress, Блочные темы.
Источник: https://developer.wordpress.org/themes/advanced-topics/child-themes/
Материал был полезен?
Помогите нам сделать материалы точнее и понятнее.