Skip to content

Всё для WordPress, веб-разработки — и не только

🔧 Как обновить тему WordPress без потери настроек: полное руководство

🔧 Как обновить тему WordPress без потери настроек: полное руководство

Вы потратили часы на доработку темы: поправили шрифты, перекроили шапку, добавили кастомные стили для карточек товаров. Сайт выглядит именно так, как вы хотели. А потом приходит уведомление «доступно обновление темы», и после одного клика все ваши правки исчезают.

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

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

💡 Быстрый обзор:

  • Узнайте, почему настройки темы исчезают при обновлении и как WordPress хранит изменения
  • Создайте дочернюю тему за 5 минут, с нуля или через плагин
  • Перенесите уже сделанные правки в дочернюю тему без потерь
  • Настройте резервное копирование и протестируйте обновление без риска для сайта

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

WordPress устроен просто: каждая тема лежит в своей папке внутри /wp-content/themes/. Когда вы нажимаете «обновить», WordPress полностью заменяет файлы темы новыми версиями из репозитория. Все, что вы правили в style.css или functions.php старой версии, затирается безвозвратно.

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

Отсюда, главное правило кастомизации тем: никогда не править файлы родительской темы напрямую. Вместо этого все изменения выносятся в отдельную сущность, дочернюю тему.

Дочерние темы: как это работает

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

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

Что можно вынести в дочернюю тему:

  • CSS-правила (шрифты, цвета, отступы, адаптивность)
  • Шаблоны страниц и отдельных блоков: header.php, footer.php и single.php
  • Функциональные изменения через functions.php (регистрация виджетов, кастомных типов записей, shortcode)
  • Переводы и текстовые строки

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

Создаем дочернюю тему: пошаговое руководство

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

Шаг 1: создаем папку

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

Шаг 2: подключаем стили, style.css

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

1/*
2Theme Name: Twenty Twenty-Four Child
3Template: twentytwentyfour
4*/

Минимально необходимы только два поля: Theme Name (любое уникальное имя) и Template (имя папки родительской темы, строго как на диске, с учетом регистра). Ошибка в Template, и дочерняя тема не появится в списке доступных в админке.

Шаг 3: наследуем стили родителя, functions.php

Создайте файл functions.php со следующим кодом:

1<?php
2function child_enqueue_parent_styles() {
3 $theme = wp_get_theme();
4 $version = $theme->parent() ? $theme->parent()->get('Version') : '1.0';
5
6 wp_enqueue_style(
7 'parent-style',
8 get_template_directory_uri() . '/style.css',
9 array(),
10 $version
11 );
12}
13add_action('wp_enqueue_scripts', 'child_enqueue_parent_styles');

Этот код делает две вещи: загружает таблицу стилей родительской темы и привязывается к ее номеру версии. Привязка к версии критически важна: когда родительская тема обновится, изменится и номер версии в URL стилей. Браузеры и CDN увидят новый URL и сбросят кеш, вы не получите «сломанный» CSS из-за того, что браузер продолжает тянуть старую закешированную версию.

Шаг 4: активируем

Заходим в админку WordPress → «Внешний вид» → «Темы». Находим только что созданную дочернюю тему по имени, которое вы указали в Theme Name, и нажимаем «Активировать».

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

Перенос существующих правок в дочернюю тему

Если вы уже успели отредактировать родительскую тему напрямую, не паникуйте. Перенос правок в дочернюю тему делается вручную, но это разовая операция.

Алгоритм такой:

  • Составьте список всех файлов родительской темы, которые вы меняли. Обычно это style.css и functions.php, реже, файлы шаблонов.
  • Скопируйте только измененные участки кода в соответствующие файлы дочерней темы. Не копируйте файл целиком, это перезапишет будущие обновления родительской темы старым кодом. Берите лишь то, что добавили или изменили вы.
  • После переноса всех правок восстановите оригинальные файлы родительской темы из репозитория (просто переустановите тему или скачайте свежую копию).

Если правок накопилось много и вы не уверены, что именно меняли, вот лайфхак: установите плагин One Click Child Theme (он создает дочернюю тему в один клик), затем вручную сверьте файлы родительской темы с оригиналом из репозитория через утилиту diff или онлайн-сервис сравнения. Так вы точно увидите, какие строки добавили вы.

Альтернативные подходы: фреймворки и плагины

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

Фреймворки тем

Если вы только выбираете тему и планируете серьезно ее дорабатывать, присмотритесь к фреймворкам. Самый известный пример, Genesis Framework от StudioPress. Идея в том, что фреймворк выступает «вечной» родительской темой, а вы работаете в дочерней с первого дня. Genesis не обновляется хаотично, его апдейты продуманы так, чтобы не ломать дочерние темы. Стоимость, $60 в год, но для тех, кто зарабатывает на сайтах, это оправданная инвестиция.

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

Плагины

Крупный план программного кода на мониторе, веб-разработка

Если возиться с файлами тем не хочется, часть задач можно переложить на плагины:

  • WP Template Overrides, позволяет точечно переопределять шаблоны без создания дочерней темы. Полезно, когда нужно поправить один конкретный шаблон, а ради этого поднимать дочернюю тему лень.
  • Плагин One Click Child Theme, создает дочернюю тему прямо из админки, без FTP. Идеально для первого знакомства с дочерними темами: нажали кнопку, и структура готова.

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

Резервное копирование: страховка перед обновлением

Каким бы методом вы ни пользовались, перед любым обновлением темы сделайте резервную копию сайта. Это займет пару минут, но сэкономит нервы, если что-то пойдет не по плану.

Три уровня резервного копирования, от простого к надежному:

  • Ручной бекап через FTP. Скачайте папку с темой и экспортируйте базу данных через phpMyAdmin или WP-CLI (wp db export). Бесплатно, но требует дисциплины, легко забыть сделать перед обновлением.
  • Автоматический бекап плагинами. Бесплатные варианты из каталога WordPress справляются с ежедневным копированием файлов и базы данных. Из премиум-решений выделяются Jetpack VaultPress Backup (облачные бекапы в реальном времени) и Solid Backups (бывший BackupBuddy, восстановление в один клик).
  • Бекап на уровне хостинга. Большинство управляемых WordPress-хостов делают ежедневные копии автоматически. Уточните у своего провайдера, как быстро можно восстановиться из такого бекапа.

Правило простое: чем ближе момент обновления, тем свежее должна быть копия. Сделали бекап → обновили тему → проверили сайт. Упал, откатили за минуту.

Безопасное тестирование обновления

WordPress воспринимает разные версии одной темы как две разные темы. Если в папке /wp-content/themes/ лежат mytheme (v1) и mytheme-new (v1.1), в админке это два отдельных пункта.

Эту особенность можно использовать для безопасного тестирования:

  • Скопируйте текущую тему в папку с другим именем (например, mytheme-old).
  • Установите новую версию темы обычным способом.
  • Активируйте новую версию и проверьте сайт.
  • Если что-то сломалось, переключитесь обратно на старую версию одним кликом.

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

На видео выше, наглядная демонстрация создания дочерней темы от начала и до активации. Если по текстовой инструкции остались вопросы, 7-минутный ролик расставит все по местам.

⁉️🤔 Частые вопросы

Обязательно ли создавать дочернюю тему, если я правил только CSS через «Настроить» → «Дополнительные стили»?

Нет. Дополнительные стили через кастомайзер хранятся в базе данных WordPress, а не в файлах темы. При обновлении они не теряются. Но если вы вносили CSS через файл style.css темы, дочерняя тема обязательна.

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

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

Что делать, если разработчик забросил родительскую тему?

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

Чем Genesis Framework лучше обычной родительской темы?

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

Можно ли обновлять тему автоматически, если у меня активна дочерняя тема?

Да, именно для этого дочерняя тема и нужна. Родительская тема обновляется автоматически (или вручную), дочерняя не затрагивается вообще. Все ваши правки остаются на месте.

Обновляться или не обновляться: что делать прямо сейчас

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

Для новичков путь такой: установите One Click Child Theme → нажмите одну кнопку → активируйте дочернюю тему → и только потом начинайте кастомизацию. Для тех, кто уже успел навносить правок в родительскую тему, перенесите их в дочернюю по инструкции выше, восстановите оригиналы и обновляйтесь спокойно.

У вас есть другая схема защиты настроек при обновлении тем? Делитесь в комментариях, дополним руководство.