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 закриють потребу із запасом. Головне, не відкладайте перший бекап на «потім». Зробіть його зараз, поки тема в робочому стані.