ворд-пресс.рф
Решение

Дочерняя тема WordPress: как создать и когда она нужна

Что такое дочерняя тема, зачем она нужна при обновлениях родительской темы и как создать минимальную структуру с style.css.

Дочерняя тема 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 не распознает правильного родителя.

Важный момент: такой пример показывает минимальное наследование, а не готовый дизайн. Дополнительные стили и шаблоны добавляются по задаче.

Как установить

  1. Убедитесь, что Twenty Twenty-Four уже установлена.
  2. Поместите папку my-wp-child в wp-content/themes/ или упакуйте её как ZIP.
  3. В админке откройте Внешний вид → Темы и активируйте My WP Child.
  4. Сравните главную и внутреннюю страницу с родительской темой.

Экспериментируйте сначала на 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/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.