Child theme w WordPressie - po co i jak go zrobić

Child theme (motyw potomny) chroni modyfikacje przed aktualizacją motywu. Instrukcja z kodem: dwa pliki, aktywacja, nadpisywanie szablonów i 3 pułapki.

Child theme (motyw potomny) to nakładka na motyw WordPressa: osobny motyw, który dziedziczy cały wygląd i funkcje z motywu głównego, a Twoje modyfikacje przechowuje we własnych plikach. Dzięki temu aktualizacja motywu-rodzica niczego nie nadpisuje. Zakładasz go w 10 minut - wystarczą dwa pliki.

Z tego poradnika dowiesz się, kiedy child theme jest konieczny (a kiedy to zbędna komplikacja), jak go utworzyć krok po kroku z gotowym kodem do skopiowania, jak nadpisywać szablony i style oraz jakie trzy pułapki najczęściej psują wdrożenie.

Problem, który rozwiązuje motyw potomny

Aktualizacja motywu nadpisuje wszystkie jego pliki. Jeśli dopisałeś coś w functions.php albo poprawiłeś stopkę w plikach motywu - po aktualizacji zmiany znikają. Alternatywa „nie aktualizować" jest gorsza: stary motyw to dziury bezpieczeństwa (dlaczego to groźne, tłumaczy tekst o aktualizacjach).

Child theme rozwiązuje ten konflikt: rodzic się aktualizuje, Twoje modyfikacje zostają. WordPress najpierw szuka pliku w motywie potomnym, a dopiero gdy go nie znajdzie - sięga do rodzica.

Kiedy go potrzebujesz - a kiedy nie

Potrzebujesz, gdy zmieniasz PLIKI motywu: dopisujesz funkcje PHP, nadpisujesz szablony (np. stopkę, wygląd wpisu), dodajesz większe partie CSS.

Nie potrzebujesz, gdy wystarczą wbudowane mechanizmy: „Dodatkowy CSS" w personalizacji, opcje motywu, edytor bloków/builder (Elementor trzyma swoje dane w bazie, nie w plikach - modyfikacje builderem nie giną przy aktualizacji). Zasada: jeżeli nie dotykasz plików - child theme to zbędna komplikacja.

Jak założyć child theme - 4 kroki

  1. Utwórz katalog - w wp-content/themes załóż folder, np. twojmotyw-child (przez FTP albo menedżer plików w panelu hostingu).
  2. Utwórz plik style.css z takim nagłówkiem:
/*
Theme Name: TwojMotyw Child
Template: twojmotyw
*/

Pole Template musi być DOKŁADNĄ nazwą katalogu rodzica (małe litery, bez spacji - tak jak nazywa się folder w wp-content/themes). To jedyny punkt, w którym coś się zwykle psuje.

  1. Utwórz plik functions.php ładujący style rodzica:
<?php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style( 'parent-style',
        get_template_directory_uri() . '/style.css' );
} );
  1. Aktywuj - Wygląd → Motywy → włącz motyw potomny. Sprawdź stronę; jeśli coś wygląda inaczej, w Personalizacji przepnij ustawienia (część motywów trzyma je osobno dla każdego motywu - także dla childa).

Nie chcesz grzebać w plikach? Oficjalna wtyczka Create Block Theme (od zespołu WordPress.org) potrafi wygenerować motyw potomny jednym kliknięciem - efekt jest identyczny z powyższymi dwoma plikami.

Jak używać child theme na co dzień

  • własny CSS - dopisujesz w style.css childa,
  • własne funkcje - w functions.php childa (on się NIE nadpisuje: ładuje się OBOK functions.php rodzica, przed nim),
  • nadpisanie szablonu - skopiuj plik z rodzica (np. footer.php) do childa i edytuj kopię; WordPress użyje Twojej wersji. Uwaga: po dużej aktualizacji rodzica porównaj nadpisane pliki z nowymi wersjami - to jedyny „koszt utrzymania" childa,
  • grafiki i dodatkowe pliki - trzymaj w podkatalogu childa i linkuj przez get_stylesheet_directory_uri(), żeby ścieżki przetrwały zmianę rodzica.

A co z motywami blokowymi (FSE)?

W nowych motywach blokowych (np. Twenty Twenty-Four i nowszych) większość zmian wykonasz w Edytorze witryny, a WordPress zapisuje je w bazie - aktualizacja motywu ich nie rusza. Child theme pozostaje potrzebny, gdy chcesz modyfikować pliki: theme.json, własne wzorce czy PHP. Tworzy się go tak samo (style.css z polem Template), a plik theme.json childa nadpisuje ustawienia rodzica.

Trzy pułapki

  1. Literówka w Template → komunikat „Motyw nadrzędny nie istnieje". Wpisz nazwę KATALOGU rodzica, nie nazwę wyświetlaną motywu.
  2. Modyfikowanie rodzica „bo szybciej" - po to masz childa, żeby NIGDY nie edytować rodzica. Jedna edycja w rodzicu i pierwsza aktualizacja ją skasuje.
  3. Child theme z generatora z dziesiątkami plików - wystarczą dwa pliki; im mniej nadpisań, tym mniej konfliktów przy aktualizacjach rodzica.

Przed pierwszą zabawą z plikami zrób kopię zapasową - a jak po edycji functions.php zobaczysz biały ekran, ratuje instrukcja WSOD. Całość wiedzy o WP: WordPress dla firm.

Najczęściej zadawane pytania

Czy child theme spowalnia stronę?

Nie w zauważalny sposób - to jeden dodatkowy arkusz stylów i sprawdzenie ścieżki pliku. Jeśli strona działa wolno, przyczyny szukaj gdzie indziej: w cache, obrazach i wtyczkach (zobacz 9 sposobów na przyspieszenie WordPressa).

Mam już zmodyfikowany motyw - czy mogę przejść na child theme?

Tak i warto: utwórz childa, przenieś do niego swoje modyfikacje (dopisane funkcje do functions.php childa, zmienione szablony jako kopie), a następnie przywróć rodzica do czystej wersji (nadpisz plikami z oryginalnej paczki). Od tej pory aktualizacje są bezpieczne.

Czy motyw potomny też się aktualizuje?

Nie - child theme jest Twój i żaden automat go nie zmienia. Aktualizujesz wyłącznie rodzica. Jedyne zadanie okresowe: po dużych wydaniach rodzica sprawdź, czy nadpisane przez Ciebie szablony nie wymagają odświeżenia względem nowych wersji.

Co się stanie, jeśli usunę motyw-rodzica?

Child przestanie działać - dziedziczy z rodzica wszystko, czego sam nie ma. Rodzic musi pozostać zainstalowany (ale nieaktywny). Przy przenoszeniu strony na inny hosting kopiuj oba motywy.

Czy jeden child theme mogę użyć na kilku stronach?

Tak - to zwykły motyw: spakuj katalog i wgraj na inną instalację z tym samym rodzicem. Przy wielu własnych stronach na jednym serwerze rozważ też WordPress Multisite (kiedy ma sens).

Powiązane poradniki

Wszystkie poradniki z kategorii: WordPress

Powiązane usługi McProdukt

Zobacz również