Child Tema u WordPressu – Kako Je Koristiti i Zašto Je Apsolutno Neophodna

Dobrodošli u sljedeći članak iz serije WordPress Savjeti & Trikovi — namijenjen početnicima, vlasnicima DIY stranica i developerima koji žele razumjeti WordPress na pravi način. Danas ćemo se pozabaviti temom koju bi svaki WordPress korisnik trebao rano savladati – child tema u WordPressu:

🚀 Zašto korištenje Child Theme nije opcionalno — već je obavezno za sigurno prilagođavanje

Ako direktno uređujete svoju temu (CSS, PHP, predloške, funkcije), vaše promjene će biti izbrisane pri sljedećoj nadogradnji.
Child tema to sprječava dajući vam zaštićeni prostor za dodavanje i nadjačavanje koda bez diranja originalnih datoteka teme.


🔧 Što je zapravo Child tema

Child tema je mala tema koja nasljeđuje sve iz vaše glavne (parent) teme i onda dodaje vaše promjene.
Može:

  • Dodavati nove funkcije
  • Nadjačavati postojeće funkcije
  • Zamijeniti predloške
  • Dodavati CSS/JS
  • Modificirati hookove
  • Prilagoditi layout, izlaz, HTML strukturu

Ključan je WordPressov redoslijed učitavanja:

👉 functions.php child teme se učitava PRVI
👉 functions.php parent teme se učitava NAKON
👉 Predlošci: child nadjačava parent po nazivu datoteke

To omogućuje sigurno nadjačavanje.


📁 Osnovna struktura Child Theme (Parent tema = “mytheme”)

style.css

/*
 Theme Name:   MyTheme Child
 Template:     mytheme
 Version:      1.0.0
*/

functions.php (ispravan način za učitavanje stilova parent teme)

<?php

function mytheme_child_enqueue_assets() {
    wp_enqueue_style(
        'mytheme-parent-style',
        get_template_directory_uri() . '/style.css'
    );

    wp_enqueue_style(
        'mytheme-child-style',
        get_stylesheet_uri(),
        ['mytheme-parent-style']
    );
}
add_action('wp_enqueue_scripts', 'mytheme_child_enqueue_assets'); 

🧩 1) Pluggable funkcije (Nadjačavanje funkcija)

Pluggable funkcije su funkcije parent teme omotane u:

if ( ! function_exists('function_name') ) { 
    function function_name() { 
       // parent logika 
    } 
} 

To znači:
Parent definira funkciju samo ako već ne postoji.

Budući da se child tema učitava prva, definiranje vlastite funkcije ima prioritet.
Parent vidi vašu funkciju i preskače svoju verziju.

✔️ Primjer – nadjačavanje parent funkcije

Parent tema:

if ( ! function_exists('mytheme_render_header') ) { 
    function mytheme_render_header() { 
        echo "<h1>Zadani header</h1>"; 
    } 
} 

Child tema:

function mytheme_render_header() {
    echo "<h1>Custom header from child theme</h1>";
}

WordPress učitava datoteku child teme, funkcija već postoji → parent neće definirati svoju verziju.
Ovo je najsigurniji i najčišći način zamjene funkcionalnosti.


🔄 2) Nadjačavanje pomoću Hookova (Actions & Filters)

Hookovi daju finu kontrolu bez potrebe za zamjenom cijelih funkcija ili predložaka.
Omogućuju vam da:

  • uklonite ponašanje parent teme
  • dodate svoje ponašanje
  • modificirate izlaz
  • promijenite redoslijed elemenata
  • ubacite vlastiti markup

Hookovi su dvije vrste:

Actions

Ubacuju ponašanje (npr. ispis HTML-a, učitavanje skripti).

Filters

Modificiraju vrijednosti (npr. promjena naslova, prilagodba klase, prepisivanje teksta).

✔️ Primjer – uklanjanje parent action & dodavanje vlastite

Parent tema:

add_action('wp_footer', 'mytheme_footer_info'); 

function mytheme_footer_info() { 
    echo "<p>Powered by MyTheme</p>"; 
} 

Child tema:

function mytheme_child_customize_footer() { 
    // ukloni parent footer action 
    remove_action('wp_footer', 'mytheme_footer_info'); 

    // dodaj svoju verziju 
    add_action('wp_footer', 'mytheme_child_footer_info'); 
} 
add_action('init', 'mytheme_child_customize_footer'); 

function mytheme_child_footer_info() { 
    echo "<p>Prilagođeni footer tekst iz child teme.</p>"; 
} 

Ovo je izuzetno moćno i ne zahtijeva nikakve predloške za nadjačavanje.


📄 3) Nadjačavanje predložaka (Potpuna zamjena layouta)

Ova metoda zamjenjuje cijele predloške iz parent teme.

Ako parent tema ima:

mytheme/
  header.php
  footer.php
  single.php
  page.php
  template-parts/
      content.php

Možete kopirati bilo koju datoteku u isti relativni direktorij unutar child teme:

mytheme-child/
  single.php

WordPress će automatski koristiti verziju iz child teme.

✔️ Primjer – nadjačavanje parent predloška

Korak 1:

Kopirajte single.php iz parent teme:

mytheme/single.php → mytheme-child/single.php 

Korak 2:

Uredite prema potrebi:

<?php
get_header();
?>

<h1 style="color: red;">Custom SINGLE predložak iz child teme</h1>

<?php
// Ostatak predloška…
get_footer(); 

To je to.
Vaša verzija potpuno zamjenjuje parent predložak.


🎯 Sažetak — Kada koristiti koju metodu

✔️ Korisiti pluggable funkcije

Kada želite potpuno zamijeniti funkciju koju parent tema omogućuje da se sigurno nadjača.

✔️ Korisiti hookove

Kada želite modificirati ili zamijeniti dio ponašanja bez diranja predložaka.

✔️ Korisiti nadjačavanje predložaka

Kada želite promijeniti HTML strukturu, markup, layout ili logiku predloška.

✔️ Uvijek koristiti Child temu

Ako dodajete kod, logiku, predloške ili bilo kakve izmjene na razini datoteka.

Similar Posts