Skip to content

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

🗂 Как сделать резервную копию темы WordPress

🗂 Как сделать резервную копию темы WordPress

Вы потратили недели на тонкую настройку темы: кастомные стили, правки в шаблонах, подогнанные под бренд цвета и шрифты. И тут что-то идёт не так. Неудачное обновление, конфликт плагинов, случайное удаление файла, и вся работа под угрозой. Переустановить тему из репозитория, значит начать с нуля и потерять всё, что вы меняли руками.

Резервная копия темы WordPress, не то же самое, что полный бэкап сайта. Полный бэкап весит гигабайты и включает базу данных, плагины, медиафайлы. А копия темы, это лёгкий снапшот именно ваших настроек и правок, который можно восстановить за минуту. В этом руководстве, четыре рабочих способа: от простого FTP до программного кода. Вы узнаете, как скопировать и файлы шаблонов, и настройки кастомайзера, которые хранятся отдельно в базе данных. Какой бы способ вы ни выбрали, после прочтения у вас будет готовый план действий на случай любой аварии с темой.

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

  • Скачайте и установите FTP-клиент FileZilla, подключитесь к серверу и скопируйте папку темы из wp-content/themes/ на компьютер
  • Установите плагин UpdraftPlus из репозитория WordPress, в настройках бэкапа отметьте только «Темы» и нажмите «Создать резервную копию»
  • Откройте встроенный редактор тем WordPress, поочерёдно скопируйте содержимое каждого файла и сохраните с теми же именами
  • Добавьте PHP-код в functions.php активной темы, он создаст страницу экспорта и импорта настроек темы через базу данных
Программный код на экране ноутбука, процесс резервного копирования файлов темы WordPress

1. Резервное копирование темы через FTP (FileZilla)

FTP-доступ есть у любого хостинга, это самый прямой путь к файлам темы на сервере. Из FTP-клиентов мы рекомендуем FileZilla: бесплатный, с открытым исходным кодом, работает на Windows, macOS и Linux.

Что понадобится: FTP-клиент FileZilla и учётные данные FTP от хостинг-провайдера (хост, логин, пароль). Если данные потерялись, запросите их в поддержке хостинга, это стандартная процедура.

Порядок действий:

  • Установите FileZilla с официального сайта и запустите.
  • В верхней панели введите хост (обычно ftp.ваш-домен.com), логин и пароль, порт 21. Нажмите «Быстрое соединение».
  • После подключения в правой панели (сервер) перейдите по пути wp-content/themes/.
  • В папке themes вы увидите все установленные темы. Найдите активную, её имя можно проверить в админке: Внешний вид → Темы, активная тема отмечена.
Структура папки тем на сервере в FileZilla
  • В левой панели (локальный компьютер) выберите папку, куда сохранить копию.
  • Перетащите папку активной темы из правой панели в левую, или кликните правой кнопкой и выберите «Скачать».
  • Дождитесь завершения передачи. FileZilla покажет статус каждого файла в нижней панели, убедитесь, что все файлы переданы успешно.
Скачивание папки темы через FTP-клиент FileZilla

Готово: у вас на компьютере, точная копия папки темы со всеми её файлами. Для восстановления достаточно залить папку обратно в wp-content/themes/ тем же способом.

Плюс метода, полный контроль и никаких плагинов. Минус, нужно помнить о ручном запуске: FTP-копия не делается по расписанию, её придётся повторять перед каждым серьёзным изменением темы.

2. Резервное копирование темы плагином UpdraftPlus

Не хотите возиться с FTP? Плагин UpdraftPlus, один из самых популярных инструментов для резервного копирования WordPress: более 2 миллионов активных установок и полная совместимость с актуальной версией WordPress. Бесплатная версия умеет выгружать бэкапы в Dropbox, Google Drive, Amazon S3 и ещё десяток облачных хранилищ.

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

Как сделать копию темы через UpdraftPlus:

  • В админке WordPress перейдите: Плагины → Добавить новый, в поиске наберите «UpdraftPlus».
  • Нажмите «Установить», затем «Активировать».
Установка плагина UpdraftPlus из репозитория WordPress
  • После активации в меню появится раздел Настройки → UpdraftPlus Backups. Откройте его.
  • Вы на вкладке «Резервное копирование / Восстановление». Нажмите синюю кнопку «Создать резервную копию».
Диалог создания резервной копии в UpdraftPlus
  • В появившемся диалоге отметьте галочку «Темы» и снимите всё остальное. Нажмите «Создать резервную копию».
  • Через несколько секунд процесс завершится, вы увидите подтверждение и новую запись в списке бэкапов.
Список резервных копий в UpdraftPlus с возможностью скачивания
  • Нажмите кнопку «Темы» под записью бэкапа, плагин предложит скачать архив с файлами темы на компьютер.

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

3. Резервное копирование через редактор тем WordPress

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

  • В админке перейдите: Внешний вид → Редактор тем.
Редактор тем WordPress со списком файлов активной темы
  • В правой колонке, список всех файлов активной темы. Справа откроется редактор кода с содержимым выбранного файла.
  • Выделите весь код (Ctrl+A), скопируйте (Ctrl+C).
  • Откройте пустой файл в текстовом редакторе (Блокнот, Notepad++, VS Code), вставьте код и сохраните с тем же именем, что у исходного файла.
  • Повторите для каждого файла темы: style.css functions.php header.php footer.php index.php single.php page.php и остальные шаблоны из списка справа.
Копирование кода файла темы в текстовый редактор

Ручной перебор всех файлов занимает время, в зависимости от темы их может быть 15-30 штук. Но как запасной вариант, когда нет доступа к FTP, а ставить плагин не хочется, редактор тем выручает. Для восстановления, скопируйте код обратно в соответствующие файлы через тот же редактор. Совет: начните с самых важных файлов в первую очередь. style.css отвечает за внешний вид, functions.php за функциональность, header.php и footer.php за шапку и подвал сайта. Именно они чаще всего правятся и именно их потеря наиболее заметна. Остальные шаблоны можно скопировать во вторую очередь.

4. Бэкап и восстановление настроек темы через код

Три предыдущих способа копируют файлы темы. Но настройки темы (цвета, шрифты, логотип, параметры кастомайзера) хранятся в базе данных WordPress, и в файлах темы их нет. Чтобы забэкапить именно настройки, нужен программный подход.

Приведённый ниже код добавляет в админку страницу Внешний вид → Backup Options с двумя кнопками: «Download as file» (экспорт настроек в файл) и «Upload file» (импорт из файла). Код вставляется в functions.php активной темы.

Важно: перед редактированием functions.php сделайте резервную копию самого файла. Ошибка в синтаксисе PHP вызовет белый экран, и доступ к админке пропадёт. Работайте через FTP или File Manager хостинга, чтобы иметь возможность откатить изменения.

1/*
2 Backup/Restore Theme Options
3 Добавляет страницу «Внешний вид → Backup Options» для
4 экспорта и импорта настроек темы через базу данных.
5*/
6
7class backup_restore_theme_options {
8
9 function backup_restore_theme_options() {
10 add_action('admin_menu', array(&$this, 'admin_menu'));
11 }
12 function admin_menu() {
13 $page = add_theme_page(
14 'Backup Options',
15 'Backup Options',
16 'manage_options',
17 'backup-options',
18 array(&$this, 'options_page')
19 );
20 add_action("load-{$page}", array(&$this, 'import_export'));
21 }
22 function import_export() {
23 if (isset($_GET['action']) && ($_GET['action'] == 'download')) {
24 header("Cache-Control: public, must-revalidate");
25 header("Pragma: hack");
26 header("Content-Type: text/plain");
27 header('Content-Disposition: attachment; filename="theme-options-'
28 . date("dMy") . '.dat"');
29 echo serialize($this->_get_options());
30 die();
31 }
32 if (isset($_POST['upload']) && check_admin_referer(
33 'shapeSpace_restoreOptions', 'shapeSpace_restoreOptions'
34 )) {
35 if ($_FILES["file"]["error"] > 0) {
36 // ошибка загрузки файла
37 } else {
38 $options = unserialize(
39 file_get_contents($_FILES["file"]["tmp_name"])
40 );
41 if ($options) {
42 foreach ($options as $option) {
43 update_option(
44 $option->option_name,
45 unserialize($option->option_value)
46 );
47 }
48 }
49 }
50 wp_redirect(admin_url('themes.php?page=backup-options'));
51 exit;
52 }
53 }
54 function options_page() { ?>
55
56 <div class="wrap">
57 <?php screen_icon(); ?>
58 <h2>Backup/Restore Theme Options</h2>
59 <form action="" method="POST" enctype="multipart/form-data">
60 <style>
61 #backup-options td {
62 display: block;
63 margin-bottom: 20px;
64 }
65 </style>
66 <table id="backup-options">
67 <tr>
68 <td>
69 <h3>Backup/Export</h3>
70 <p>Текущие настройки темы:</p>
71 <p><textarea class="widefat code" rows="20" cols="100"
72 onclick="this.select()"><?php
73 echo serialize($this->_get_options());
74 ?></textarea></p>
75 <p><a href="?page=backup-options&action=download"
76 class="button-secondary">Download as file</a></p>
77 </td>
78 <td>
79 <h3>Restore/Import</h3>
80 <p><label class="description" for="upload">
81 Восстановить настройки из файла</label></p>
82 <p><input type="file" name="file" />
83 <input type="submit" name="upload" id="upload"
84 class="button-primary" value="Upload file" /></p>
85 <?php if (function_exists('wp_nonce_field'))
86 wp_nonce_field('shapeSpace_restoreOptions',
87 'shapeSpace_restoreOptions');
88 ?>
89 </td>
90 </tr>
91 </table>
92 </form>
93 </div>
94
95 <?php }
96 function _get_options() {
97 global $wpdb;
98 return $wpdb->get_results(
99 "SELECT option_name, option_value FROM {$wpdb->options}
100 WHERE option_name = 'shapeSpace_options'"
101 );
102 // замените 'shapeSpace_options' на ключ опций вашей темы
103 }
104}
105new backup_restore_theme_options();

Код ищет в базе данных записи с ключом shapeSpace_options, это демонстрационное значение. Замените его на реальный ключ опций вашей темы. Найти ключ можно в файле functions.php: поищите вызовы get_option('ваш_ключ') или update_option('ваш_ключ', ...). После замены ключа и вставки кода страница Backup Options появится в меню «Внешний вид».

Для бэкапа, заходите на страницу и нажимаете «Download as file». Для восстановления, загружаете сохранённый .dat-файл через форму «Upload file». Настройки применятся мгновенно.

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

Чем бэкап темы отличается от полного бэкапа WordPress?

Полный бэкап через плагин вроде UpdraftPlus или хостинговый инструмент копирует всё: базу данных, плагины, медиафайлы, темы, ядро WordPress. Такой архив весит сотни мегабайт и восстанавливается десятки минут. Бэкап только темы, это 2-10 МБ текстовых PHP/CSS/JS-файлов, переносится за секунды и нужен перед точечными правками шаблонов.

Как часто нужно делать резервную копию темы?

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

Можно ли восстановить тему из полного бэкапа сайта?

Да. Из полного бэкапа (архив UpdraftPlus, резервная копия хостинга) можно извлечь только папку темы из wp-content/themes/, это те же файлы, что и при FTP-копировании. Но если доступен только полный бэкап на 3 ГБ, а нужно восстановить одну папку, проще иметь отдельную копию темы под рукой.

Какой способ самый надёжный?

Комбинация: плагин UpdraftPlus для регулярного автоматического бэкапа + ручной FTP-бэкап папки темы перед серьёзными правками. Плагин страхует от человеческой забывчивости, FTP, даёт мгновенный доступ к файлам без админки WordPress.

Что делать, если после правки functions.php сайт перестал открываться?

Подключитесь к серверу по FTP, скачайте functions.php, удалите или закомментируйте ошибочный код в файле на сервере, залейте обратно. Сайт восстановится. Именно поэтому мы настаиваем: всегда делайте копию functions.php перед редактированием.

Что делать с резервной копией темы дальше

Бэкап темы, не самоцель, а часть здорового процесса разработки. Вот практический чек-лист, который защитит вашу тему от потерь:

  • Перед обновлением темы, FTP-копия папки темы на локальный диск. Занимает минуту, экономит часы восстановления.
  • **Перед правкой **functions.php, отдельная копия именно этого файла. Ошибка в PHP-синтаксисе, и сайт ложится. С копией вы восстанавливаете доступ через FTP за 30 секунд.
  • Раз в неделю, если тема активно дорабатывается, держите под рукой UpdraftPlus с настроенным расписанием (даже бесплатная версия позволяет запускать бэкап вручную в два клика).

Как организовать хранение копий

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

Для облачного хранения подойдёт любое привычное вам решение. Dropbox, Google Drive, Яндекс Диск, любой сервис с синхронизацией папок. После FTP-копирования просто переместите папку темы в синхронизируемую директорию, и копия автоматически уйдёт в облако. UpdraftPlus умеет выгружать бэкапы в Dropbox, Google Drive, Amazon S3 напрямую, без ручного копирования.

Для тех кто работает с темой регулярно, полезно добавить дату в имя папки: mytheme-backup-2025-03-17. Через месяц вы легко отличите мартовскую копию от апрельской и не запутаетесь в версиях.

Особый случай: дочерние темы

Если вы используете дочернюю тему (child theme), бэкап нужно делать для обеих тем: родительской и дочерней. Родительская тема обычно не редактируется, но перед её обновлением копия всё равно нужна. На случай если новая версия родительской темы сломает совместимость с вашей дочерней темой, вы сможете откатиться. Дочернюю тему копируйте перед каждым изменением, именно в ней собраны все ваши правки.

Выберите способ под свою ситуацию. Работаете с кодом каждый день, освойте код из раздела 4: одна кнопка экспорта настроек экономит массу времени. Зашли поправить цвет кнопки раз в месяц, FTP или UpdraftPlus закроют потребность с запасом. Главное, не откладывайте первый бэкап на «потом». Сделайте его сейчас, пока тема в рабочем состоянии.