Перейти к содержимому
Дочерние темы WordPress: что это и как их создать

Дочерние темы WordPress: что это и как их создать

Can BayarCan BayarОбновлено: 12 мин чтения494 просмотров

Что такое дочерняя тема WordPress?

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

Представьте это так: родительская тема предоставляет основу, а дочерняя тема накладывает ваши изменения сверху. WordPress сначала загружает дочернюю тему, а затем обращается к родительской для всего, что не переопределено. Эта модель наследования является одним из самых практичных архитектурных решений WordPress.

Почему стоит использовать дочернюю тему?

Использование дочерней темы считается стандартной практикой среди разработчиков WordPress, и на то есть веские причины. Вот основные преимущества:

  • Безопасность обновлений: Обновления родительской темы не перезапишут ваши настройки. Ваш код находится в отдельном каталоге, который остается нетронутым во время обновлений.
  • Организованный рабочий процесс: Все ваши изменения остаются в одном месте, что упрощает отслеживание того, что вы изменили и почему.
  • Легкий откат: Если настройка вызывает проблемы, вы можете просто деактивировать дочернюю тему и мгновенно вернуться к родительской теме.
  • Возможность обучения: Создание дочерней темы учит вас, как работают темы WordPress, без давления необходимости создавать одну с нуля.
  • Совместимость с системами контроля версий: Вы можете коммитить только свою дочернюю тему в Git, сохраняя ваш репозиторий чистым и сосредоточенным на ваших изменениях.

Дочерняя тема против кастомизатора WordPress: когда использовать каждый

WordPress предлагает несколько способов настроить внешний вид вашего сайта. Понимание, когда использовать дочернюю тему, а когда встроенный кастомизатор, поможет вам выбрать правильный подход для каждой ситуации.

ОсобенностьДочерняя темаКастомизатор WordPress
Изменения кода (PHP)Полностью поддерживаетсяНе поддерживается
Переопределение шаблоновПолностью поддерживаетсяНе поддерживается
Изменения CSSРекомендуется для крупных измененийПодходит для мелких правок
Выживает при обновлении темыДаДа (если используются параметры темы)
Требуемый уровень технических навыковБазовые знания PHP/CSSКодирование не требуется
Живой предварительный просмотрТребует ручного обновленияВстроенный живой предварительный просмотр
Влияние на производительностьНезначительноеНезначительное

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

Как создать дочернюю тему вручную

Создание дочерней темы требует всего лишь двух файлов: style.css и functions.php. Вот пошаговая инструкция.

Шаг 1: Создайте каталог дочерней темы

Подключитесь к вашей установке WordPress через FTP или файловый менеджер вашего хостинга. Перейдите в wp-content/themes/ и создайте новую папку. Конвенция именования — имя-родительской-темы-дочерняя. Например, если ваша родительская тема — Astra, назовите папку astra-child.

Шаг 2: Создайте style.css

Внутри вашей новой папки создайте файл с именем style.css со следующим заголовком:

/*
 Название темы:   Astra Child
 URI темы:       https://yoursite.com
 Описание:       Дочерняя тема для Astra
 Автор:          Ваше Имя
 Шаблон:        astra
 Версия:        1.0.0
*/

Строка Шаблон имеет критическое значение. Она должна точно совпадать с именем каталога родительской темы (не с отображаемым именем). Проверьте wp-content/themes/, чтобы подтвердить точное имя папки.

Шаг 3: Создайте functions.php

Создайте файл functions.php, который правильно подключает стили родительской и дочерней тем:

<?php
function child_theme_enqueue_styles() {
    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')
    );
}
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');

Этот подход гарантирует, что сначала загружается стиль родительской темы, а затем стили вашей дочерней темы, поддерживая правильный порядок каскадирования.

Шаг 4: Активируйте дочернюю тему

Перейдите в Внешний вид > Темы в вашей панели управления WordPress. Вы должны увидеть вашу дочернюю тему в списке. Нажмите Активировать. Ваш сайт должен выглядеть идентично, как и прежде, потому что дочерняя тема наследует все от родительской.

Использование плагина для создания дочерней темы

Если вы предпочитаете подход без кода

Если вы предпочитаете подход без кода, несколько плагинов могут создать дочерние темы для вас. Наиболее широко используемый вариант — это плагин Child Theme Configurator. Вот как это работает:

  1. Установите и активируйте плагин Child Theme Configurator из Плагины > Добавить новый.
  2. Перейдите в Инструменты > Дочерние темы.
  3. Выберите вашу родительскую тему из выпадающего списка.
  4. Нажмите Анализировать, чтобы проверить на наличие потенциальных проблем.
  5. Нажмите Создать новую дочернюю тему.
  6. Плагин генерирует все необходимые файлы и, при желании, копирует настройки виджетов и меню.

Этот метод быстрее, но дает вам меньше контроля над начальной настройкой. Для производственных сайтов понимание ручного процесса ценно, так как это помогает вам устранять проблемы, которые могут возникнуть позже.

Распространенные настройки в дочерней теме

Как только ваша дочерняя тема активирована, вы можете начать вносить изменения. Вот самые частые сценарии настройки.

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

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

  1. Найдите single.php в папке вашей родительской темы.
  2. Скопируйте его в папку вашей дочерней темы.
  3. Отредактируйте копию в вашей дочерней теме.

WordPress автоматически будет использовать версию дочерней темы вместо родительской.

Добавление пользовательского CSS

Добавьте ваши CSS-правила в файл дочерней темы style.css, ниже комментария заголовка. Поскольку таблица стилей дочерней темы загружается после родительской, ваши правила имеют приоритет:

/* Пользовательский фон заголовка */
.site-header {
    background-color: #2c3e50;
    padding: 20px 0;
}

/* Настройка размера заголовка поста */
.entry-title {
    font-size: 2rem;
    line-height: 1.3;
}

Добавление пользовательских функций

Файл functions.php дочерней темы выполняется дополнительно к родительскому (а не вместо него). Вы можете добавлять пользовательские шорткоды, области виджетов, типы постов или изменять существующее поведение с помощью хуков WordPress:

// Добавить пользовательскую область виджетов
function child_register_sidebar() {
    register_sidebar(array(
        'name'          => 'Пользовательская боковая панель',
        'id'            => 'custom-sidebar',
        'before_widget' => '<div class="widget">',
        'after_widget'  => '</div>',
    ));
}
add_action('widgets_init', 'child_register_sidebar');

Настройка заголовка и подвала

Скопируйте header.php или footer.php из родительской темы в вашу дочернюю тему, затем измените их. Вот как вы добавляете пользовательские элементы навигации, скрипты отслеживания или структурные изменения в этих критически важных областях.

Когда НЕ использовать дочернюю тему

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

  • Небольшие изменения CSS: Для нескольких строк CSS используйте раздел Дополнительный CSS в Настрощике. Создание дочерней темы для трех правил CSS добавляет ненужную сложность.
  • Добавление функциональности: Если вы добавляете функции, не связанные с темой (пользовательские типы постов, шорткоды, интеграции), используйте вместо этого пользовательский плагин. Это сохраняет вашу функциональность независимой от темы.
  • Сайты с конструкторами страниц: Если вы полностью строите с помощью Elementor Pro или аналогичных конструкторов страниц, большинство настроек происходит внутри конструктора. Дочерняя тема здесь добавляет мало ценности.
  • Стартовые темы: Если вы создаете полностью пользовательский дизайн, начните с стартовой темы, такой как Underscores (_s) или используйте фреймворк. Дочерняя тема подразумевает, что вы хотите сохранить дизайн родительской темы.

Выбор родительской темы для вашей дочерней темы

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

  • Astra Pro: Известна своим легковесным кодом, обширной системой хуков и четкой документацией для разработчиков дочерних тем. Astra предоставляет десятки хуков действий и фильтров специально для настройки дочерних тем.
  • GeneratePress Premium: Предлагает чистую, хорошо структурированную кодовую базу с модульными компонентами. Его система хуков позволяет вставлять контент в различных точках без переопределения файлов шаблонов.

Обе темы поддерживают обратную совместимость при обновлениях, что имеет решающее значение при создании дочерних тем, которые должны оставаться стабильными со временем.

Устранение распространенных проблем с дочерними темами

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

ПроблемаВероятная причинаРешение
Белый экран после активацииОшибка синтаксиса PHP в functions.phpПолучите доступ к файлам через FTP и проверьте на наличие опечаток, отсутствующих точек с запятой или незакрытых скобок
Стили не применяютсяНеправильный порядок подключения или отсутствующий родительский стильПроверьте массив зависимостей wp_enqueue_style
Переопределение шаблона не работаетНеправильный путь к файлу или имяУбедитесь, что путь к файлу в дочерней теме точно соответствует структуре родительской темы
Тема не отображается в панели управленияНеправильное значение Template в style.cssПроверьте, чтобы значение Template соответствовало имени директории родительской темы (учитывается регистр)
Функции выполняются дваждыИ родитель, и ребенок определяют одну и ту же функциюИспользуйте проверки function_exists() или разные имена функций

Справка по структуре папки дочерней темы

Хорошо организованная дочерняя тема следует этой структуре:

your-theme-child/
├── style.css              (обязательно - заголовок темы + пользовательский CSS)
├── functions.php          (обязательно - подключение стилей + пользовательские функции)
├── screenshot.png         (по желанию - миниатюра темы)
├── header.php             (по желанию - переопределение заголовка)
├── footer.php             (по желанию - переопределение подвала)
├── single.php             (по желанию - переопределение одиночного поста)
├── page.php               (по желанию - переопределение страницы)
├── template-parts/        (по желанию - частичные переопределения)
│   └── content-single.php
├── assets/                (по желанию - пользовательские ресурсы)
│   ├── css/
│   ├── js/
│   └── images/
└── woocommerce/           (по желанию - переопределения WooCommerce)
    └── single-product.php

Для получения дополнительной информации о выборе родительской темы, смотрите наше руководство о том, как выбрать тему WordPress в 2026 году. Если вам нужна помощь в установке темы перед созданием дочерней темы, ознакомьтесь с нашим учебником по установке темы WordPress.

Для получе��ия дополнительной информации обратитесь к официальной документации: Документация дочерних тем, Справочник по темам.

Часто задаваемые вопросы

Потеряю ли я настройки дочерней темы при обновлении самого WordPress?

Нет. Обновления ядра WordPress не влияют на темы. Ваша дочерняя тема и ее родительская тема остаются в своих соответствующих директориях под wp-content/themes/. Только обновления родительской темы могут потенциально вызвать проблемы совместимости, но файлы вашей дочерней темы останутся нетронутыми.

Могу ли я создать дочернюю тему дочерней темы (внучатую тему)?

WordPress не поддерживает внучатые темы. Дочерняя тема может наследовать только от родительской темы, а не от другой дочерней темы. Если вам нужно несколько уровней настройки, используйте комбинацию дочерней темы и пользовательских плагинов.

Замедлит ли дочерняя тема мой сайт?

Влияние на производительность от дочерней темы незначительно. WordPress загружает дополнительный файл style.css и functions.php, что добавляет доли миллисекунды к времени загрузки страницы. Дополнительные затраты не поддаются измерению в реальных условиях.

Могу ли я использовать дочернюю тему с любой темой WordPress?

Технически да, но некоторые темы работают с дочерними темами более надежно, чем другие. Темы, которые следуют стандартам кодирования WordPress и используют правильные системы хуков, легче расширять. Темы, которые сильно зависят от жестко закодированных путей или проприетарных фреймворков, могут вызывать неожиданные проблемы.

Как мне перенести дочернюю тему с тестового сайта на рабочий?

Скопируйте всю папку дочерней темы из wp-content/themes/your-child-theme/ в то же место на вашем рабочем сервере. Затем активируйте ее из панели управления WordPress. Если ваша дочерняя тема ссылается на конкретные URL, обновите их после миграции.

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

Начальные темы, такие как Underscores, предназначены для непосредственного изменения. Они служат отправной точкой для пользовательских тем, а не как родительские темы для дочерних тем. Изменяйте их напрямую и отслеживайте изменения с помощью системы контроля версий.

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

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

Стройте на прочном основании

Astra Pro предоставляет обширную поддержку хуков и чистую архитектуру кода, что делает ее надежной родительской темой для ваших проектов дочерних тем.

Изучите Astra Pro →

Часто задаваемые вопросы

Нужна ли мне дочерняя тема, если я использую только Настрощик?
Если ваши настройки ограничены опциями, доступными в Настрощике WordPress (цвета, шрифты, меню, виджеты), дочерняя тема не является строго необходимой. Настрощик сохраняет настройки в базе данных, которая сохраняется при обновлении тем.
Замедлит ли дочерняя тема мой сайт?
Правильно созданная дочерняя тема добавляет незначительные накладные расходы. Она загружает один дополнительный небольшой файл CSS и файл functions.php. Влияние на производительность на практике не измеримо.
Могу ли я создать дочернюю тему для любой темы WordPress?
Да, вы можете создать дочернюю тему для любой темы WordPress. Однако некоторые темы, такие как Divi и Avada, имеют свои собственные системы настройки, которые могут сделать дочерние темы менее необходимыми. Проверьте документацию темы для получения конкретных рекомендаций.
Что произойдет с моей дочерней темой, если я изменю родительскую тему?
Ваша дочерняя тема связана с конкретной родительской темой. Если вы переключитесь на другую родительскую тему, дочерняя тема перестанет работать. Вам нужно будет создать новую дочернюю тему на основе новой родительской темы и перенести ваши настройки.
Как обновить родительскую тему, не потеряв изменения дочерней темы?
Именно это и решают дочерние темы. Когда вы обновляете родительскую тему, заменяются только файлы родительской темы. Ваши файлы дочерней темы остаются нетронутыми, и ваши настройки автоматически сохраняются.

Поделиться публикацией

Об Авторе

Can Bayar
Can Bayar

Эксперт по WordPress

Старший разработчик WordPress с более чем 10-летним опытом разработки плагинов и тем. Специализируется на WooCommerce, Elementor и оптимизации производительности.

WordPressWooCommerceElementorPHPJavaScriptОптимизация производительности

Будьте в Курсе

Получайте последние советы и уроки по WordPress на свою почту.