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 → натисніть одну кнопку → активуйте дочірню тему → і тільки потім починайте кастомізацію. Для тих, хто вже встиг навносити правок у батьківську тему, перенесіть їх у дочірню за інструкцією вище, відновіть оригінали й оновлюйтеся спокійно.

У вас є інша схема захисту налаштувань під час оновлення тем? Діліться в коментарях, доповнимо інструкцію.