Child Theme WordPress - bezpieczna modyfikacja motywu
Chcesz zmodyfikować motyw WordPress, ale boisz się że aktualizacja usunie Twoje zmiany? Child Theme (motyw potomny) to rozwiązanie. Dziedziczy wszystko z motywu rodzica, a Twoje modyfikacje są bezpieczne.
Krótka odpowiedź
Dlaczego warto używać Child Theme
Problem bez child theme:
- Edytujesz pliki motywu bezpośrednio
- Aktualizacja motywu = Twoje zmiany znikają
- Musisz pamiętać co zmieniałeś i robić ponownie
Rozwiązanie z child theme:
- Zmiany w osobnym folderze
- Aktualizacja rodzica nie wpływa na Twoje modyfikacje
- Czysta separacja: oryginał vs Twoje customizacje
Kiedy child theme jest potrzebny:
- Modyfikacja CSS poza Customizerem
- Zmiany w plikach PHP motywu
- Dodawanie funkcji w functions.php
- Nadpisywanie szablonów (single.php, archive.php)
Kiedy NIE potrzebujesz:
- Proste zmiany kolorów/fontów - Customizer wystarczy
- Dodawanie kodu przez wtyczkę (Code Snippets)
- Używasz page buildera do wszystkiego
Tworzenie Child Theme krok po kroku
Krok 1: Utwórz folder
- wp-content/themes/twojmotyw-child/
- Nazwa: [nazwa-rodzica]-child (konwencja)
Krok 2: Utwórz style.css
```css
/*
Theme Name: Nazwa Motywu Child
Template: nazwa-folderu-rodzica
*/
/* Twoje style tutaj */
```
- Template MUSI być dokładną nazwą folderu motywu rodzica
Krok 3: Utwórz functions.php
```php
add_action('wp_enqueue_scripts', 'child_enqueue_styles');
function child_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_uri(), array('parent-style'));
}
```
Krok 4: Aktywuj
- Wygląd → Motywy
- Znajdź swój child theme
- Aktywuj
Nadpisywanie plików szablonów
Jak to działa:
- WordPress szuka pliku najpierw w child theme
- Jeśli nie znajdzie - używa z rodzica
- Możesz nadpisać dowolny plik PHP
Przykład - nadpisanie single.php:
1. Skopiuj single.php z motywu rodzica
2. Wklej do folderu child theme
3. Edytuj kopię w child theme
Co możesz nadpisać:
- header.php, footer.php
- single.php, page.php, archive.php
- Pliki z folderów: template-parts/, inc/
- Zachowaj strukturę folderów!
Częściowe nadpisanie:
- Kopiuj tylko pliki które modyfikujesz
- Reszta dziedziczy się automatycznie
- Mniej plików = łatwiejsze utrzymanie
Dodawanie własnych funkcji
W functions.php child theme:
```php
// Własne funkcje dodawaj tutaj
// Przykład: dodanie własnego widżetu
add_action('widgets_init', 'register_my_widget');
function register_my_widget() {
register_sidebar(array(
'name' => 'Własny sidebar',
'id' => 'custom-sidebar'
));
}
// Przykład: modyfikacja excerpta
function custom_excerpt_length($length) {
return 30; // słów
}
add_filter('excerpt_length', 'custom_excerpt_length');
```
Kolejność ładowania:
- functions.php child theme ładuje się PRZED rodzicem
- Możesz nadpisać funkcje rodzica (jeśli nie mają function_exists())
Hooki i filtry:
- Używaj add_action() i add_filter()
- Czyściej niż modyfikacja plików
- Dokumentacja motywu wskaże dostępne hooki
Wtyczki do tworzenia Child Theme
Child Theme Configurator:
- Automatyczne tworzenie child theme
- Analiza CSS rodzica
- Edytor z podglądem
- Kopiowanie plików szablonów
Jak użyć:
1. Zainstaluj Child Theme Configurator
2. Narzędzia → Child Themes
3. Wybierz motyw rodzica
4. Kliknij Analyze / Create
5. Gotowe!
One-Click Child Theme:
- Jeszcze prostsze
- Jeden klik = child theme utworzony
Kiedy wtyczka, kiedy ręcznie:
- Wtyczka: dla początkujących, szybki start
- Ręcznie: pełna kontrola, nauka, lepsze zrozumienie