
🗂 Jak zrobić kopię zapasową motywu WordPress
Spędził Pan tygodnie na precyzyjnym dopracowywaniu motywu: niestandardowe style, poprawki w szablonach, kolory i czcionki dopasowane do marki. I nagle coś idzie nie tak. Nieudana aktualizacja, konflikt wtyczek, przypadkowe usunięcie pliku i cała praca jest zagrożona. Ponowna instalacja motywu z repozytorium oznacza zaczynanie od zera i utratę wszystkiego, co zmieniał Pan ręcznie.
Kopia zapasowa motywu WordPress to nie to samo, co pełna kopia zapasowa witryny. Pełny backup waży gigabajty i obejmuje bazę danych, wtyczki, pliki multimedialne. Kopia motywu to lekki snapshot właśnie Pana ustawień i poprawek, który można przywrócić w minutę. W tym poradniku przedstawiam cztery działające sposoby: od prostego FTP po kod programistyczny. Dowie się Pan, jak skopiować zarówno pliki szablonów, jak i ustawienia konfiguratora, które są przechowywane osobno w bazie danych. Niezależnie od tego, którą metodę Pan wybierze, po lekturze będzie miał Pan gotowy plan działania na wypadek jakiejkolwiek awarii motywu.
💡 Szybki przegląd:
- Pobierz i zainstaluj klienta FTP FileZilla, połącz się z serwerem i skopiuj folder motywu z
wp-content/themes/na komputer - Zainstaluj wtyczkę UpdraftPlus z repozytorium WordPress, w ustawieniach kopii zapasowej zaznacz tylko „Motywy" i kliknij „Utwórz kopię zapasową"
- Otwórz wbudowany edytor motywów WordPress, skopiuj kolejno zawartość każdego pliku i zapisz z tymi samymi nazwami
- Dodaj kod PHP do
functions.phpaktywnego motywu, utworzy on stronę eksportu i importu ustawień motywu przez bazę danych

1. Kopia zapasowa motywu przez FTP (FileZilla)
Dostęp FTP jest dostępny w każdym hostingu, to najbardziej bezpośrednia droga do plików motywu na serwerze. Spośród klientów FTP polecam FileZilla: darmowy, open source, działa na Windows, macOS i Linux.
Co będzie potrzebne: klient FTP FileZilla oraz dane logowania FTP od dostawcy hostingu (host, login, hasło). Jeśli dane się zawieruszyły, proszę poprosić o nie support hostingu, to standardowa procedura.
Kolejność działań:
- Zainstaluj FileZilla z oficjalnej strony i uruchom.
- W górnym panelu wprowadź host (zazwyczaj ftp.pana-domena.com), login i hasło, port 21. Kliknij „Szybkie połączenie".
- Po połączeniu w prawym panelu (serwer) przejdź ścieżką
wp-content/themes/. - W folderze
themeszobaczy Pan wszystkie zainstalowane motywy. Proszę znaleźć aktywny, jego nazwę można sprawdzić w panelu administracyjnym: Wygląd → Motywy, aktywny motyw jest oznaczony.

- W lewym panelu (komputer lokalny) proszę wybrać folder, w którym zapisze Pan kopię.
- Przeciągnij folder aktywnego motywu z prawego panelu do lewego lub kliknij prawym przyciskiem myszy i wybierz „Pobierz".
- Proszę poczekać na zakończenie transferu. FileZilla pokaże status każdego pliku w dolnym panelu, proszę upewnić się, że wszystkie pliki zostały przesłane pomyślnie.

Gotowe: ma Pan na komputerze dokładną kopię folderu motywu ze wszystkimi jego plikami. Aby przywrócić, wystarczy wgrać folder z powrotem do wp-content/themes/ w ten sam sposób.
Zaletą metody jest pełna kontrola i brak wtyczek. Wadą jest konieczność pamiętania o ręcznym uruchamianiu: kopia FTP nie jest wykonywana zgodnie z harmonogramem, trzeba ją powtarzać przed każdą poważną zmianą motywu.
2. Kopia zapasowa motywu wtyczką UpdraftPlus
Nie chce Pan/Pani zawracać sobie głowy FTP? Wtyczka UpdraftPlus, jedno z najpopularniejszych narzędzi do tworzenia kopii zapasowych WordPressa: ponad 2 miliony aktywnych instalacji i pełna zgodność z aktualną wersją WordPressa. Darmowa wersja potrafi wysyłać kopie zapasowe do Dropbox, Google Drive, Amazon S3 i kilkunastu innych chmur.
Główną zaletą UpdraftPlus w naszym zadaniu jest możliwość utworzenia kopii tylko motywu, bez pobierania całej bazy danych i plików multimedialnych. To szybkie i oszczędza miejsce.
Jak wykonać kopię motywu przez UpdraftPlus:
- W panelu administracyjnym WordPressa proszę przejść do: Wtyczki → Dodaj nową, w wyszukiwaniu wpisać „UpdraftPlus".
- Kliknąć „Zainstaluj", a następnie „Aktywuj".

- Po aktywacji w menu pojawi się sekcja Ustawienia → UpdraftPlus Backups. Proszę ją otworzyć.
- Jest Pan/Pani na karcie „Kopia zapasowa / Przywracanie". Proszę kliknąć niebieski przycisk „Utwórz kopię zapasową".

- W oknie dialogowym proszę zaznaczyć pole wyboru „Motywy" i odznaczyć całą resztę. Kliknąć „Utwórz kopię zapasową".
- Po kilku sekundach proces się zakończy, zobaczy Pan/Pani potwierdzenie i nowy wpis na liście kopii zapasowych.

- Proszę kliknąć przycisk „Motywy" pod wpisem kopii zapasowej, wtyczka zaproponuje pobranie archiwum z plikami motywu na komputer.
Plusy: harmonogram (w wersji płatnej), wysyłanie do chmury, można wybrać tylko motywy. Minus: kolejna wtyczka w panelu administracyjnym. Jeśli używa Pan/Pani już UpdraftPlus do pełnych kopii zapasowych, ten sposób jest oczywistym wyborem. Wystarczy podczas kolejnego ręcznego backupu zaznaczyć pole „Motywy" i odznaczyć resztę, aby otrzymać lekkie archiwum zawierające wyłącznie pliki motywu.
3. Kopia zapasowa przez edytor motywów WordPress
Jeśli dodatkowe wtyczki są niepożądane, a dostępu FTP nie ma Pan/Pani pod ręką, wbudowany edytor motywów WordPress umożliwia ręczne skopiowanie zawartości każdego pliku. Sposób jest pracochłonny, ale działa i nie wymaga zewnętrznego oprogramowania.
- W panelu administracyjnym proszę przejść do: Wygląd → Edytor motywów.

- W prawej kolumnie znajduje się lista wszystkich plików aktywnego motywu. Po prawej stronie otworzy się edytor kodu z zawartością wybranego pliku.
- Proszę zaznaczyć cały kod (Ctrl+A), skopiować (Ctrl+C).
- Otworzyć pusty plik w edytorze tekstowym (Notatnik, Notepad++, VS Code), wkleić kod i zapisać z tą samą nazwą, co plik źródłowy.
- Powtórzyć dla każdego pliku motywu:
style.css,functions.php,header.php,footer.php,index.php,single.php,page.phpi pozostałych szablonów z listy po prawej.

Ręczne przeglądanie wszystkich plików zabiera czas, w zależności od motywu może ich być od 15 do 30. Jednak jako opcja zapasowa, gdy nie ma dostępu do FTP, a instalowanie wtyczki nie wchodzi w grę, edytor motywów ratuje sytuację. Aby przywrócić, proszę skopiować kod z powrotem do odpowiednich plików przez ten sam edytor. Wskazówka: proszę zacząć od najważniejszych plików. style.css odpowiada za wygląd, functions.php za funkcjonalność, header.php i footer.php za nagłówek i stopkę witryny. To właśnie one są najczęściej edytowane i ich utrata jest najbardziej odczuwalna. Pozostałe szablony można skopiować w drugiej kolejności.
4. Kopia zapasowa i przywracanie ustawień motywu za pomocą kodu
Trzy poprzednie sposoby kopiują pliki motywu. Jednak ustawienia motywu (kolory, czcionki, logo, parametry konfiguratora) są przechowywane w bazie danych WordPressa i nie ma ich w plikach motywu. Aby wykonać kopię zapasową samych ustawień, potrzebne jest podejście programistyczne.
Poniższy kod dodaje w panelu administracyjnym stronę Wygląd → Backup Options z dwoma przyciskami: „Download as file" (eksport ustawień do pliku) i „Upload file" (import z pliku). Kod wstawia się do pliku functions.php aktywnego motywu.
⚠ Ważne: przed edycją
functions.phpproszę wykonać kopię zapasową samego pliku. Błąd w składni PHP spowoduje biały ekran i utratę dostępu do panelu administracyjnego. Proszę pracować przez FTP lub Menedżera plików hostingu, aby móc cofnąć zmiany.
1 /* 2 Backup/Restore Theme Options 3 Добавляет страницу «Внешний вид → Backup Options» для 4 экспорта и импорта настроек темы через базу данных. 5 */ 6 7 class 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 } 105 new backup_restore_theme_options();
Kod szuka w bazie danych wpisów z kluczem shapeSpace_options, jest to wartość demonstracyjna. Proszę zastąpić ją rzeczywistym kluczem opcji Pana/Pani motywu. Klucz można znaleźć w pliku functions.php: proszę poszukać wywołań get_option('ваш_ключ') lub update_option('ваш_ключ', ...). Po zastąpieniu klucza i wstawieniu kodu strona Backup Options pojawi się w menu „Wygląd".
Aby wykonać kopię zapasową, proszę wejść na stronę i kliknąć „Download as file". Aby przywrócić, proszę przesłać zapisany plik .dat przez formularz „Upload file". Ustawienia zostaną zastosowane natychmiast.
⁉️🤔 Często zadawane pytania
Czym kopia zapasowa motywu różni się od pełnej kopii zapasowej WordPressa?
Pełna kopia zapasowa przez wtyczkę taką jak UpdraftPlus lub narzędzie hostingowe kopiuje wszystko: bazę danych, wtyczki, pliki multimedialne, motywy, rdzeń WordPressa. Takie archiwum waży setki megabajtów i jest przywracane kilkadziesiąt minut. Kopia zapasowa samego motywu to 2-10 MB tekstowych plików PHP/CSS/JS, przenosi się w kilka sekund i jest potrzebna przed punktowymi poprawkami szablonów.
Jak często należy wykonywać kopię zapasową motywu?
Przed każdą zmianą plików motywu. Zamierzają Państwo edytować
header.php, proszę zrobić kopię. Planują Państwo zaktualizować motyw do nowej wersji, proszę zrobić kopię. W pozostałym czasie wystarczy regularna pełna kopia zapasowa witryny: zawiera ona motyw automatycznie. Ręczna kopia zapasowa motywu to zabezpieczenie na wypadek konkretnej operacji, a nie zamiennik pełnej kopii zapasowej.
Czy można przywrócić motyw z pełnej kopii zapasowej witryny?
Tak. Z pełnej kopii zapasowej (archiwum UpdraftPlus, kopia zapasowa hostingu) można wyciągnąć tylko folder motywu z
wp-content/themes/, to te same pliki, co podczas kopiowania przez FTP. Ale jeśli dostępna jest tylko pełna kopia zapasowa o wielkości 3 GB, a trzeba przywrócić jeden folder, prościej jest mieć osobną kopię motywu pod ręką.
Który sposób jest najbardziej niezawodny?
Kombinacja: wtyczka UpdraftPlus do regularnego automatycznego backupu + ręczna kopia zapasowa folderu motywu przez FTP przed poważnymi poprawkami. Wtyczka zabezpiecza przed ludzką niepamięcią, FTP daje natychmiastowy dostęp do plików bez panelu administracyjnego WordPressa.
Co zrobić, jeśli po poprawce w functions.php witryna przestała się otwierać?
Proszę połączyć się z serwerem przez FTP, pobrać
functions.php, usunąć lub zakomentować błędny kod w pliku na serwerze, wgrać z powrotem. Witryna zostanie przywrócona. Właśnie dlatego nalegamy: zawsze proszę robić kopięfunctions.phpprzed edycją.
Co dalej zrobić z kopią zapasową motywu
Kopia zapasowa motywu nie jest celem samym w sobie, lecz częścią zdrowego procesu rozwoju. Oto praktyczna lista kontrolna, która ochroni Państwa motyw przed utratą:
- Przed aktualizacją motywu, kopia FTP folderu motywu na dysk lokalny. Zajmuje minutę, oszczędza godziny przywracania.
- **Przed edycją **
functions.php, osobna kopia właśnie tego pliku. Błąd w składni PHP i witryna pada. Z kopią przywracają Państwo dostęp przez FTP w 30 sekund. - Raz w tygodniu, jeśli motyw jest aktywnie rozwijany, proszę mieć pod ręką UpdraftPlus z ustawionym harmonogramem (nawet darmowa wersja pozwala uruchomić backup ręcznie dwoma kliknięciami).
Jak zorganizować przechowywanie kopii
Przechowywanie jedynej kopii na tym samym komputerze, na którym Państwo pracują, jest ryzykowne. Dysk może ulec awarii, laptop może zostać skradziony. Minimalnie wystarczające podejście: kopia lokalna plus jedna kopia w chmurze.
Do przechowywania w chmurze nada się każde znane Państwu rozwiązanie. Dropbox, Dysk Google, każda usługa z synchronizacją folderów. Po skopiowaniu przez FTP wystarczy przenieść folder motywu do zsynchronizowanego katalogu, a kopia automatycznie trafi do chmury. UpdraftPlus potrafi wysyłać kopie zapasowe do Dropbox, Dysku Google, Amazon S3 bezpośrednio, bez ręcznego kopiowania.
Dla osób pracujących z motywem regularnie warto dodawać datę w nazwie folderu: mytheme-backup-2025-03-17. Po miesiącu łatwo odróżnią Państwo kopię marcową od kwietniowej i nie pogubią się w wersjach.
Przypadek szczególny: motywy potomne
Jeśli używają Państwo motywu potomnego (child theme), kopię zapasową należy wykonać dla obu motywów: nadrzędnego i potomnego. Motyw nadrzędny zazwyczaj nie jest edytowany, ale przed jego aktualizacją kopia i tak jest potrzebna. Na wypadek, gdyby nowa wersja motywu nadrzędnego zepsuła kompatybilność z Państwa motywem potomnym, będą mogli Państwo cofnąć zmiany. Motyw potomny proszę kopiować przed każdą zmianą, ponieważ to w nim zebrane są wszystkie Państwa poprawki.
Proszę wybrać sposób odpowiedni do swojej sytuacji. Pracują Państwo z kodem codziennie, proszę opanować kod z rozdziału 4: jeden przycisk eksportu ustawień oszczędza mnóstwo czasu. Wchodzą Państwo poprawić kolor przycisku raz w miesiącu, FTP lub UpdraftPlus zaspokoją potrzebę z nawiązką. Najważniejsze: nie odkładajcie Państwo pierwszej kopii zapasowej na „potem". Proszę zrobić ją teraz, póki motyw jest w stanie roboczym.



