{"id":360,"date":"2026-04-20T09:36:23","date_gmt":"2026-04-20T08:36:23","guid":{"rendered":"https:\/\/masterymesh.com\/blog\/?p=360"},"modified":"2026-04-20T09:36:24","modified_gmt":"2026-04-20T08:36:24","slug":"sto-je-child-theme-u-wordpressu","status":"publish","type":"post","link":"https:\/\/masterymesh.com\/blog\/wordpress-tips\/sto-je-child-theme-u-wordpressu\/","title":{"rendered":"\u0160to je Child Theme u WordPressu i kako ga kreirati: Kompletan vodi\u010d za po\u010detnike"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ako ste ikada poku\u0161ali prilagoditi WordPress temu i zatim izgubili sve promjene nakon a\u017euriranja, ovaj vodi\u010d je za vas. Child theme (dje\u010dja tema) je rje\u0161enje koje omogu\u0107ava sigurne prilagodbe bez straha od gubitka rada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">U ovom detaljnom vodi\u010du nau\u010dit \u0107ete to\u010dno \u0161to je child theme, za\u0161to ga trebate, i kako ga kreirati korak po korak &#8211; \u010dak i ako nikada niste programirali.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Sadr\u017eaj<\/h2><nav><ul><li class=\"\"><a href=\"#sto-je-child-theme-u-word-pressu\">\u0160to je child theme u WordPressu?<\/a><\/li><li class=\"\"><a href=\"#zasto-vam-je-potreban-child-theme\">Za\u0161to vam je potreban child theme?<\/a><\/li><li class=\"\"><a href=\"#kada-koristiti-child-theme\">Kada koristiti child theme?<\/a><\/li><li class=\"\"><a href=\"#struktura-child-theme-direktorija\">Struktura child theme direktorija<\/a><\/li><li class=\"\"><a href=\"#kako-kreirati-child-theme-3-metode\">Kako kreirati child theme: 3 metode<\/a><\/li><li class=\"\"><a href=\"#prilagodba-child-theme-a-prakticni-primjeri\">Prilagodba child theme-a: Prakti\u010dni primjeri<\/a><\/li><li class=\"\"><a href=\"#ceste-greske-i-kako-ih-izbjeci\">\u010ceste gre\u0161ke i kako ih izbje\u0107i<\/a><\/li><li class=\"\"><a href=\"#debugging-child-theme-problema\">Debugging child theme problema<\/a><\/li><li class=\"\"><a href=\"#napredne-tehnike\">Napredne tehnike<\/a><\/li><li class=\"\"><a href=\"#best-practices-za-child-theme-development\">Best practices za child theme development<\/a><\/li><li class=\"\"><a href=\"#child-theme-za-popularne-teme\">Child theme za popularne teme<\/a><\/li><li class=\"\"><a href=\"#migracija-s-parent-na-child-theme\">Migracija s parent na child theme<\/a><\/li><li class=\"\"><a href=\"#troubleshooting-checklist\">Troubleshooting checklist<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sto-je-child-theme-u-word-pressu\">\u0160to je child theme u WordPressu?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Child theme je posebna WordPress tema koja naslje\u0111uje funkcionalnost, zna\u010dajke i stil &#8220;roditeljske&#8221; teme (parent theme), ali vam omogu\u0107ava da napravite prilagodbe bez izmjene originalne teme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jednostavnom analogijom:<\/strong> Child theme je poput stvaranja kopije knjige u koju mo\u017eete pisati bilje\u0161ke i izmjene, dok originalna knjiga ostaje netaknuta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kako-child-theme-funkcionira\">Kako child theme funkcionira?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress ima princip &#8220;kaskadne nasljednosti&#8221; gdje child theme:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Preuzima sve iz parent theme<\/strong> &#8211; dizajn, funkcionalnost, postavke<\/li>\n\n\n\n<li><strong>Dodaje ili mijenja samo ono \u0161to \u017eelite<\/strong> &#8211; vlastiti CSS, funkcije, template datoteke<\/li>\n\n\n\n<li><strong>Omogu\u0107ava sigurna a\u017euriranja<\/strong> &#8211; parent theme se mo\u017ee a\u017eurirati bez gubitka prilagodbi<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Kada WordPress u\u010ditava stranicu s aktivnim child theme-om:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prvo provjerava postoji li datoteka u child theme direktoriju<\/li>\n\n\n\n<li>Ako postoji, koristi tu verziju<\/li>\n\n\n\n<li>Ako ne postoji, koristi verziju iz parent theme-a<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zasto-vam-je-potreban-child-theme\">Za\u0161to vam je potreban child theme?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-zastita-prilagodbi-pri-azuriranjima\">1. Za\u0161tita prilagodbi pri a\u017euriranjima<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Najva\u017eniji razlog za kori\u0161tenje child theme-a je za\u0161tita va\u0161eg rada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problem bez child theme-a:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Izmijenite <code>style.css<\/code> ili <code>functions.php<\/code> u temi<\/li>\n\n\n\n<li>Tema dobije a\u017euriranje sigurnosti ili novih zna\u010dajki<\/li>\n\n\n\n<li>Kliknete &#8220;Update&#8221;<\/li>\n\n\n\n<li>Sve va\u0161e prilagodbe su izbrisane<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rje\u0161enje s child theme-om:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sve prilagodbe su u odvojenom direktoriju<\/li>\n\n\n\n<li>Parent tema se mo\u017ee sigurno a\u017eurirati<\/li>\n\n\n\n<li>Va\u0161e izmjene ostaju netaknute<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-organizacija-i-cistoca-koda\">2. Organizacija i \u010disto\u0107a koda<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Child theme omogu\u0107ava jasno razdvajanje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Parent theme<\/strong> = osnovna funkcionalnost<\/li>\n\n\n\n<li><strong>Child theme<\/strong> = va\u0161e specifi\u010dne prilagodbe<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ovo olak\u0161ava debugiranje, odr\u017eavanje i razumijevanje \u0161to ste to\u010dno promijenili.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-lakse-testiranje\">3. Lak\u0161e testiranje<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mo\u017eete eksperimentirati s izmjenama bez straha:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Probajte novi CSS<\/li>\n\n\n\n<li>Testirajte custom funkcionalnost<\/li>\n\n\n\n<li>Ako ne\u0161to po\u0111e po zlu, jednostavno vratite child theme na prija\u0161nju verziju<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-profesionalni-development-workflow\">4. Profesionalni development workflow<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Za developere i agencije, child theme-ovi omogu\u0107avaju:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verzioniranje izmjena (Git)<\/li>\n\n\n\n<li>Timski rad na projektu<\/li>\n\n\n\n<li>Prebacivanje izme\u0111u staging i production okru\u017eenja<\/li>\n\n\n\n<li>Dokumentiranje specifi\u010dnih izmjena za klijenta<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-produljenje-zivotnog-vijeka-teme\">5. Produljenje \u017eivotnog vijeka teme<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Premium teme \u010desto dobivaju zna\u010dajna a\u017euriranja:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nove zna\u010dajke<\/li>\n\n\n\n<li>Pobolj\u0161anja performansi<\/li>\n\n\n\n<li>Sigurnosne zakrpe<\/li>\n\n\n\n<li>Kompatibilnost s novim verzijama WordPress\u0430<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">S child theme-om mo\u017eete iskoristiti sve te benefite bez gubitka prilagodbi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"kada-koristiti-child-theme\">Kada koristiti child theme?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"uvijek-koristite-child-theme-ako\">UVIJEK koristite child theme ako:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Mijenjate CSS stilove teme<br>\u2705 Dodajete custom PHP funkcije<br>\u2705 Prilago\u0111avate template datoteke (header.php, footer.php, single.php&#8230;)<br>\u2705 Radite na klijentskom projektu<br>\u2705 Planirate dugoro\u010dno odr\u017eavanje web stranice<br>\u2705 Koristite popularnu temu koja se redovito a\u017eurira<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ne-trebate-child-theme-ako\">NE trebate child theme ako:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Koristite Customizer (Theme Customizer izmjene se \u010duvaju u bazi)<br>\u274c Sve radite kroz page buildere (Elementor, Divi, Beaver Builder)<br>\u274c Koristite samo pluginove za prilagodbe<br>\u274c Tema ima ugra\u0111ene opcije za sve \u0161to trebate<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Napomena:<\/strong> \u010cak i ako trenutno ne mijenjate kod, preporu\u010dujem kreiranje child theme-a &#8220;za svaki slu\u010daj&#8221; &#8211; nikad ne znate kada \u0107e vam zatrebati mala CSS izmjena.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"struktura-child-theme-direktorija\">Struktura child theme direktorija<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prije nego krenemo s kreiranjem, razumijmo osnovnu strukturu:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nwp-content\/themes\/\n\u251c\u2500\u2500 parent-theme\/          (roditeljska tema)\n\u2502   \u251c\u2500\u2500 style.css\n\u2502   \u251c\u2500\u2500 functions.php\n\u2502   \u251c\u2500\u2500 header.php\n\u2502   \u2514\u2500\u2500 ...\n\u2514\u2500\u2500 parent-theme-child\/    (va\u0161 child theme)\n    \u251c\u2500\u2500 style.css          (obavezno)\n    \u251c\u2500\u2500 functions.php      (preporu\u010deno)\n    \u251c\u2500\u2500 screenshot.png     (opciono)\n    \u2514\u2500\u2500 template files     (po potrebi)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Minimalni zahtjevi:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Direktorij s jedinstvenim nazivom<\/li>\n\n\n\n<li><code>style.css<\/code> s posebnim header komentarom<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preporu\u010dena struktura:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>style.css<\/code> &#8211; glavni CSS file<\/li>\n\n\n\n<li><code>functions.php<\/code> &#8211; custom funkcionalnost<\/li>\n\n\n\n<li><code>screenshot.png<\/code> &#8211; slika koja se prikazuje u admin panelu (880x660px)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"kako-kreirati-child-theme-3-metode\">Kako kreirati child theme: 3 metode<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"metoda-1-manualno-kreiranje-preporuceno-za-ucenje\">Metoda 1: Manualno kreiranje (preporu\u010deno za u\u010denje)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ova metoda vam daje potpunu kontrolu i razumijevanje kako child theme funkcionira.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"korak-1-kreiranje-direktorija\">Korak 1: Kreiranje direktorija<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Spojite se na va\u0161 web server putem FTP-a (FileZilla, Cyberduck) ili koristite File Manager u cPanelu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigirajte do:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/wp-content\/themes\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Kreirajte novi folder. Ime treba biti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>U lowercase slovima<\/li>\n\n\n\n<li>Bez razmaka (koristite crtice)<\/li>\n\n\n\n<li>Opisno i jedinstveno<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjeri dobrih naziva:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>blocksy-child<\/code><\/li>\n\n\n\n<li><code>astra-child<\/code><\/li>\n\n\n\n<li><code>twentytwentyfour-child<\/code><\/li>\n\n\n\n<li><code>generatepress-moj-projekt<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Izbjegavajte:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>child<\/code> (prejednostavno)<\/li>\n\n\n\n<li><code>My Theme Child<\/code> (razmaci, velika slova)<\/li>\n\n\n\n<li>Naziv koji ve\u0107 postoji<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"korak-2-kreiranje-style-css\">Korak 2: Kreiranje style.css<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">U novom direktoriju kreirajte datoteku <code>style.css<\/code> s ovim sadr\u017eajem:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/*\nTheme Name:   Blocksy Child\nTheme URI:    https:\/\/masterymesh.com\nDescription:  Child tema za Blocksy\nAuthor:       MasteryMesh\nAuthor URI:   https:\/\/masterymesh.com\nTemplate:     blocksy\nVersion:      1.0.0\nLicense:      GNU General Public License v2 or later\nLicense URI:  http:\/\/www.gnu.org\/licenses\/gpl-2.0.html\nText Domain:  blocksy-child\n*\/\n\n\/* ============================================\n   Ovdje dodajte va\u0161e custom CSS stilove\n   ============================================ *\/\n\n\/* Primjer: Promjena boje naslova *\/\nh1 {\n    color: #2c3e50;\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Klju\u010dni parametri obja\u0161njeni:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Theme Name<\/strong> &#8211; Ime koje \u0107e se prikazivati u WordPress admin panelu<\/li>\n\n\n\n<li><strong>Template<\/strong> &#8211; Naziv direktorija parent theme-a (MORA biti to\u010dan!)<\/li>\n\n\n\n<li><strong>Description<\/strong> &#8211; Kratak opis teme<\/li>\n\n\n\n<li><strong>Version<\/strong> &#8211; Verzija za pra\u0107enje izmjena<\/li>\n\n\n\n<li><strong>Text Domain<\/strong> &#8211; Za prijevode (trebate samo ako planirate prevo\u0111enje)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>KRITI\u010cNO:<\/strong> <code>Template:<\/code> vrijednost MORA to\u010dno odgovarati nazivu direktorija parent theme-a. Ako se ne poklapa, child theme ne\u0107e raditi.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"korak-3-kreiranje-functions-php\">Korak 3: Kreiranje functions.php<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Kreirajte <code>functions.php<\/code> u istom direktoriju:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;strong&gt;&lt;?php&lt;\/strong&gt;\n\/**\n * Blocksy Child Theme Functions\n * \n * @package Blocksy Child\n *\/\n\n\/\/ Izlazak ako je direktno pristupljeno\nif ( ! defined( &#039;ABSPATH&#039; ) ) {\n    exit;\n}\n\n\/**\n * U\u010ditavanje parent i child theme stilova\n *\/\nfunction blocksy_child_enqueue_styles() {\n    \n    \/\/ Parent theme CSS\n    wp_enqueue_style( \n        &#039;blocksy-parent-style&#039;, \n        get_template_directory_uri() . &#039;\/style.css&#039;,\n        array(),\n        wp_get_theme()-&gt;parent()-&gt;get(&#039;Version&#039;)\n    );\n    \n    \/\/ Child theme CSS\n    wp_enqueue_style( \n        &#039;blocksy-child-style&#039;,\n        get_stylesheet_directory_uri() . &#039;\/style.css&#039;,\n        array( &#039;blocksy-parent-style&#039; ),\n        wp_get_theme()-&gt;get(&#039;Version&#039;)\n    );\n}\nadd_action( &#039;wp_enqueue_scripts&#039;, &#039;blocksy_child_enqueue_styles&#039; );\n\n\/**\n * Ovdje dodajte svoje custom funkcije\n *\/\n\n\/\/ Primjer: Custom funkcija za dodavanje copyright godine\nfunction get_copyright_year() {\n    return date(&#039;Y&#039;);\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Va\u017ena napomena o functions.php:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Za razliku od ve\u0107ine template datoteka, <code>functions.php<\/code> iz child theme-a se <strong>ne zamjenjuje<\/strong> ve\u0107 se <strong>dodaje<\/strong> uz parent theme <code>functions.php<\/code>. Oba se izvr\u0161avaju (prvo child, zatim parent).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"korak-4-dodavanje-screenshot-slike-opciono\">Korak 4: Dodavanje screenshot slike (opciono)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Za profesionalan izgled u admin panelu, dodajte <code>screenshot.png<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dimenzije:<\/strong> 880&#215;660 piksela (preporu\u010deno) ili 1200x900px<\/li>\n\n\n\n<li><strong>Format:<\/strong> PNG ili JPG<\/li>\n\n\n\n<li><strong>Sadr\u017eaj:<\/strong> Logo, primjer dizajna, ili jednostavno ime teme<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Mo\u017eete kreirati u Canvi, Photoshopu, ili bilo kojem grafi\u010dkom alatu.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"korak-5-aktivacija-child-theme-a\">Korak 5: Aktivacija child theme-a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Idite u WordPress Admin \u2192 <strong>Izgled<\/strong> \u2192 <strong>Teme<\/strong><\/li>\n\n\n\n<li>Prona\u0107i \u0107ete svoju novu child temu<\/li>\n\n\n\n<li>Kliknite <strong>Activate<\/strong> ili <strong>Aktiviraj<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>VA\u017dNO:<\/strong> Nikada nemojte aktivirati parent i child theme istovremeno. Uvijek aktivirajte samo child theme.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"metoda-2-koristenje-plugina-najbrze-za-pocetnike\">Metoda 2: Kori\u0161tenje plugina (najbr\u017ee za po\u010detnike)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ako vam manualno kreiranje zvu\u010di zastra\u0161uju\u0107e, mo\u017eete koristiti plugin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"preporuceni-plugin-child-theme-configurator\">Preporu\u010deni plugin: Child Theme Configurator<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Instalacija:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>WordPress Admin<\/strong> \u2192 <strong>Dodaci<\/strong> \u2192 <strong>Dodaj novi<\/strong><\/li>\n\n\n\n<li>Pretra\u017eite &#8220;<strong>Child Theme Configurator<\/strong>&#8220;<\/li>\n\n\n\n<li>Instalirajte i aktivirajte<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kori\u0161tenje:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Idite na <strong>Alati<\/strong> \u2192 <strong>Child Themes<\/strong><\/li>\n\n\n\n<li>Odaberite <strong>CREATE a new Child Theme<\/strong><\/li>\n\n\n\n<li><strong>Parent Theme:<\/strong> Odaberite svoju trenutnu temu<\/li>\n\n\n\n<li><strong>Analysis:<\/strong> Kliknite &#8220;Analyze&#8221; i pri\u010dekajte<\/li>\n\n\n\n<li><strong>Configure Child Theme:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Unesite Child Theme Name<\/li>\n\n\n\n<li>Opcionalno: Author, Description<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Copy Menus, Widgets and Customizer Settings:<\/strong> Ozna\u010dite ako \u017eelite zadr\u017eati postavke<\/li>\n\n\n\n<li><strong>Create New Child Theme<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin automatski:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kreira direktorij<\/li>\n\n\n\n<li>Generira <code>style.css<\/code> i <code>functions.php<\/code><\/li>\n\n\n\n<li>Postavlja ispravne parametre<\/li>\n\n\n\n<li>Nudi opciju za kopiranje postavki<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prednosti:<\/strong> \u2705 Brzo i jednostavno<br>\u2705 Automatska konfiguracija<br>\u2705 Grafi\u010dko su\u010delje<br>\u2705 Podr\u0161ka za custom templateove<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nedostaci:<\/strong> \u274c Manja kontrola nad procesom<br>\u274c Dodatni plugin koji mo\u017eete kasnije deaktivirati<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"metoda-3-wp-cli-za-napredne-korisnike\">Metoda 3: WP-CLI (za napredne korisnike)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ako imate pristup command line-u na serveru:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n# Navigirajte do themes direktorija\ncd \/path\/to\/wp-content\/themes\/\n\n# Kreirajte child theme direktorij\nmkdir blocksy-child\ncd blocksy-child\n\n# Kreirajte style.css\ncat &gt; style.css &lt;&lt; &#039;EOF&#039;\n\/*\nTheme Name:   Blocksy Child\nTemplate:     blocksy\nVersion:      1.0.0\n*\/\nEOF\n\n# Kreirajte functions.php\ncat &gt; functions.php &lt;&lt; &#039;EOF&#039;\n&lt;?php\nfunction blocksy_child_enqueue_styles() {\n    wp_enqueue_style(&#039;parent-style&#039;, get_template_directory_uri() . &#039;\/style.css&#039;);\n    wp_enqueue_style(&#039;child-style&#039;, get_stylesheet_directory_uri() . &#039;\/style.css&#039;, array(&#039;parent-style&#039;));\n}\nadd_action(&#039;wp_enqueue_scripts&#039;, &#039;blocksy_child_enqueue_styles&#039;);\nEOF\n\n# Aktivirajte child theme\nwp theme activate blocksy-child\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"prilagodba-child-theme-a-prakticni-primjeri\">Prilagodba child theme-a: Prakti\u010dni primjeri<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sada kada imate child theme, \u0161to mo\u017eete s njim raditi?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-dodavanje-custom-css-a\">1. Dodavanje custom CSS-a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Naj\u010de\u0161\u0107a upotreba child theme-a je dodavanje vlastitih stilova.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>U <code>style.css<\/code> dodajte:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/* Promjena font familije *\/\nbody {\n    font-family: &#039;Roboto&#039;, sans-serif;\n}\n\n\/* Stiliziranje gumb\u00e2 *\/\n.button, .btn {\n    background-color: #3498db;\n    color: #ffffff;\n    padding: 12px 24px;\n    border-radius: 5px;\n    transition: all 0.3s ease;\n}\n\n.button:hover, .btn:hover {\n    background-color: #2980b9;\n    transform: translateY(-2px);\n}\n\n\/* Responzivni header *\/\n@media (max-width: 768px) {\n    .site-header {\n        padding: 10px 15px;\n    }\n}\n\n\/* Custom footer stilovi *\/\n.site-footer {\n    background-color: #2c3e50;\n    color: #ecf0f1;\n    padding: 40px 0;\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Savjet:<\/strong> Koristite browser Developer Tools (F12) da identifikujete CSS klase koje \u017eelite mijenjati.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-dodavanje-custom-funkcija\">2. Dodavanje custom funkcija<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">U <code>functions.php<\/code> mo\u017eete dodati razne funkcionalnosti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjer 1: Dodavanje custom veli\u010dine slike<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Registracija custom image size\nfunction custom_image_sizes() {\n    add_image_size( &#039;portfolio-thumb&#039;, 400, 300, true );\n    add_image_size( &#039;hero-image&#039;, 1920, 800, true );\n}\nadd_action( &#039;after_setup_theme&#039;, &#039;custom_image_sizes&#039; );\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjer 2: Uklanjanje WordPress verzije iz head-a (sigurnost)<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Ukloni WordPress verziju\nremove_action(&#039;wp_head&#039;, &#039;wp_generator&#039;);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjer 3: Custom excerpt length<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Promijeni duljinu excerpt-a\nfunction custom_excerpt_length( $length ) {\n    return 30; \/\/ broj rije\u010di\n}\nadd_filter( &#039;excerpt_length&#039;, &#039;custom_excerpt_length&#039; );\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjer 4: Dodavanje custom widget podru\u010dja<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Registracija sidebar-a\nfunction custom_widget_areas() {\n    register_sidebar( array(\n        &#039;name&#039;          =&gt; &#039;Custom Sidebar&#039;,\n        &#039;id&#039;            =&gt; &#039;custom-sidebar&#039;,\n        &#039;description&#039;   =&gt; &#039;Custom widget area&#039;,\n        &#039;before_widget&#039; =&gt; &#039;&lt;div class=&quot;widget %2$s&quot;&gt;&#039;,\n        &#039;after_widget&#039;  =&gt; &#039;&lt;\/div&gt;&#039;,\n        &#039;before_title&#039;  =&gt; &#039;&lt;h3 class=&quot;widget-title&quot;&gt;&#039;,\n        &#039;after_title&#039;   =&gt; &#039;&lt;\/h3&gt;&#039;,\n    ) );\n}\nadd_action( &#039;widgets_init&#039;, &#039;custom_widget_areas&#039; );\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-prilagodba-template-datoteka\">3. Prilagodba template datoteka<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ako trebate izmijeniti strukturu stranice, kopirajte template iz parent theme-a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Postupak:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Identificirajte template koji \u017eelite promijeniti (npr. <code>header.php<\/code>, <code>footer.php<\/code>, <code>single.php<\/code>)<\/li>\n\n\n\n<li>Kopirajte ga iz parent theme direktorija<\/li>\n\n\n\n<li>Zalijepite u child theme direktorij<\/li>\n\n\n\n<li>Izmijenite kopiju<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primjer: Prilagodba footer.php<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;strong&gt;&lt;?php&lt;\/strong&gt;\n\/**\n * Custom Footer Template\n *\/\n&lt;strong&gt;?&gt;&lt;\/strong&gt;\n&lt;footer class=&quot;site-footer&quot;&gt;\n    &lt;div class=&quot;container&quot;&gt;\n        &lt;div class=&quot;footer-content&quot;&gt;\n            &lt;div class=&quot;footer-column&quot;&gt;\n                &lt;h4&gt;O nama&lt;\/h4&gt;\n                &lt;p&gt;Kratki opis va\u0161eg biznisa.&lt;\/p&gt;\n            &lt;\/div&gt;\n            \n            &lt;div class=&quot;footer-column&quot;&gt;\n                &lt;h4&gt;Kontakt&lt;\/h4&gt;\n                &lt;p&gt;Email: info@example.com&lt;\/p&gt;\n                &lt;p&gt;Tel: +385 1 234 5678&lt;\/p&gt;\n            &lt;\/div&gt;\n            \n            &lt;div class=&quot;footer-column&quot;&gt;\n                &lt;strong&gt;&lt;?php&lt;\/strong&gt;\n                wp_nav_menu( array(\n                    &#039;theme_location&#039; =&gt; &#039;footer-menu&#039;,\n                    &#039;menu_class&#039;     =&gt; &#039;footer-menu&#039;,\n                ) );\n                &lt;strong&gt;?&gt;&lt;\/strong&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n        \n        &lt;div class=&quot;footer-bottom&quot;&gt;\n            &lt;p&gt;&amp;copy; &lt;strong&gt;&lt;?php&lt;\/strong&gt; echo date(&#039;Y&#039;); &lt;strong&gt;?&gt;&lt;\/strong&gt; &lt;strong&gt;&lt;?php&lt;\/strong&gt; bloginfo(&#039;name&#039;); &lt;strong&gt;?&gt;&lt;\/strong&gt;. Sva prava pridr\u017eana.&lt;\/p&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/footer&gt;\n\n&lt;strong&gt;&lt;?php&lt;\/strong&gt; wp_footer(); &lt;strong&gt;?&gt;&lt;\/strong&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>VA\u017dNO:<\/strong> Ne kopirajte template datoteke &#8220;za svaki slu\u010daj&#8221;. Kopirajte samo one koje <strong>aktivno mijenjate<\/strong>, jer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Smanjuje mogu\u0107nost gre\u0161aka<\/li>\n\n\n\n<li>Olak\u0161ava odr\u017eavanje<\/li>\n\n\n\n<li>Parent theme mo\u017ee dodati nove zna\u010dajke u template-e<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-dodavanje-custom-post-type-a\">4. Dodavanje custom post type-a<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Registracija Portfolio CPT\nfunction create_portfolio_post_type() {\n    register_post_type( &#039;portfolio&#039;,\n        array(\n            &#039;labels&#039; =&gt; array(\n                &#039;name&#039; =&gt; &#039;Portfolio&#039;,\n                &#039;singular_name&#039; =&gt; &#039;Portfolio Item&#039;\n            ),\n            &#039;public&#039; =&gt; true,\n            &#039;has_archive&#039; =&gt; true,\n            &#039;supports&#039; =&gt; array( &#039;title&#039;, &#039;editor&#039;, &#039;thumbnail&#039; ),\n            &#039;menu_icon&#039; =&gt; &#039;dashicons-portfolio&#039;,\n        )\n    );\n}\nadd_action( &#039;init&#039;, &#039;create_portfolio_post_type&#039; );\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"ceste-greske-i-kako-ih-izbjeci\">\u010ceste gre\u0161ke i kako ih izbje\u0107i<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"greska-1-krivi-template-parametar\">Gre\u0161ka 1: Krivi Template parametar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problem:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\nTemplate: Blocksy  \/* Krivo - velika slova *\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Rje\u0161enje:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\nTemplate: blocksy  \/* To\u010dno - naziv direktorija *\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Provjerite to\u010dan naziv direktorija u <code>\/wp-content\/themes\/<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"greska-2-functions-php-bez-otvarajuce-php-oznake\">Gre\u0161ka 2: functions.php bez otvaraju\u0107e PHP oznake<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problem:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nfunction my_function() {  \/\/ Krivo - fali &lt;strong&gt;&lt;?php&lt;\/strong&gt;\n    \/\/ kod\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Rje\u0161enje:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;strong&gt;&lt;?php&lt;\/strong&gt;  \/\/ Obavezno na po\u010detku\nfunction my_function() {\n    \/\/ kod\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"greska-3-zatvarajuca-php-oznaka-na-kraju\">Gre\u0161ka 3: Zatvaraju\u0107a PHP oznaka na kraju<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problem:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;strong&gt;&lt;?php&lt;\/strong&gt;\nfunction my_function() {\n    \/\/ kod\n}\n&lt;strong&gt;?&gt;&lt;\/strong&gt;  \/\/ Lo\u0161a praksa\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Rje\u0161enje:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;strong&gt;&lt;?php&lt;\/strong&gt;\nfunction my_function() {\n    \/\/ kod\n}\n\/\/ Bez zatvaraju\u0107e oznake na kraju\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">WordPress najbolje prakse ka\u017eu da <strong>ne trebate<\/strong> <code>?&gt;<\/code> na kraju <code>functions.php<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"greska-4-duplicirane-funkcije\">Gre\u0161ka 4: Duplicirane funkcije<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problem:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Parent theme ve\u0107 ima ovu funkciju\nfunction custom_logo() {\n    \/\/ Fatal error: Cannot redeclare function\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Rje\u0161enje:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Provjerite postoji li funkcija\nif ( ! function_exists( &#039;custom_logo&#039; ) ) {\n    function custom_logo() {\n        \/\/ va\u0161 kod\n    }\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"greska-5-neispravno-ucitavanje-stilova\">Gre\u0161ka 5: Neispravno u\u010ditavanje stilova<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Stari (zastarjeli) na\u010din:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ NE koristite @import\n@import url(&quot;..\/parent-theme\/style.css&quot;);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Ispravno:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Koristite wp_enqueue_style\nwp_enqueue_style(&#039;parent-style&#039;, get_template_directory_uri() . &#039;\/style.css&#039;);\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"debugging-child-theme-problema\">Debugging child theme problema<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ako child theme ne radi kako treba:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-provjerite-aktivaciju\">1. Provjerite aktivaciju<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Admin \u2192 Izgled \u2192 Teme<\/li>\n\n\n\n<li>Je li child theme aktiviran (ne parent)?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-provjerite-template-parametar\">2. Provjerite Template parametar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\nTemplate: blocksy  \/* Mora biti to\u010dan naziv direktorija *\/\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-omogucite-wp-debug\">3. Omogu\u0107ite WP_DEBUG<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">U <code>wp-config.php<\/code> dodajte:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\ndefine( &#039;WP_DEBUG&#039;, true );\ndefine( &#039;WP_DEBUG_LOG&#039;, true );\ndefine( &#039;WP_DEBUG_DISPLAY&#039;, false );\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Gre\u0161ke \u0107e se zapisivati u <code>\/wp-content\/debug.log<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4-provjerite-file-permissions\">4. Provjerite file permissions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n# Ispravne permisije\nfind \/path\/to\/child-theme -type d -exec chmod 755 {} \\;\nfind \/path\/to\/child-theme -type f -exec chmod 644 {} \\;\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"5-onemogucite-druge-pluginove\">5. Onemogu\u0107ite druge pluginove<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Konflikt s pluginovima mo\u017ee uzrokovati probleme. Privremeno deaktivirajte sve pluginove i testirajte.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-provjerite-php-greske\">6. Provjerite PHP gre\u0161ke<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Koristite browser konzolu (F12) i provjerite postoje li JavaScript gre\u0161ke koje mogu ukazivati na PHP probleme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"napredne-tehnike\">Napredne tehnike<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ucitavanje-dodatnih-css-datoteka\">U\u010ditavanje dodatnih CSS datoteka<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nfunction enqueue_custom_styles() {\n    \/\/ Custom fonts\n    wp_enqueue_style( &#039;google-fonts&#039;, &#039;https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@400;700&amp;display=swap&#039;, array(), null );\n    \n    \/\/ Custom CSS file\n    wp_enqueue_style( &#039;custom-styles&#039;, get_stylesheet_directory_uri() . &#039;\/css\/custom.css&#039;, array(), &#039;1.0.0&#039; );\n}\nadd_action( &#039;wp_enqueue_scripts&#039;, &#039;enqueue_custom_styles&#039; );\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"ucitavanje-java-script-datoteka\">U\u010ditavanje JavaScript datoteka<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nfunction enqueue_custom_scripts() {\n    wp_enqueue_script( &#039;custom-js&#039;, get_stylesheet_directory_uri() . &#039;\/js\/custom.js&#039;, array(&#039;jquery&#039;), &#039;1.0.0&#039;, true );\n}\nadd_action( &#039;wp_enqueue_scripts&#039;, &#039;enqueue_custom_scripts&#039; );\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"uvjetno-ucitavanje-resursa\">Uvjetno u\u010ditavanje resursa<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nfunction conditional_scripts() {\n    \/\/ U\u010ditaj samo na home page\n    if ( is_front_page() ) {\n        wp_enqueue_style( &#039;homepage-style&#039;, get_stylesheet_directory_uri() . &#039;\/css\/homepage.css&#039; );\n    }\n    \n    \/\/ U\u010ditaj samo na single post\n    if ( is_single() ) {\n        wp_enqueue_script( &#039;single-post-js&#039;, get_stylesheet_directory_uri() . &#039;\/js\/single-post.js&#039;, array(), &#039;1.0&#039;, true );\n    }\n}\nadd_action( &#039;wp_enqueue_scripts&#039;, &#039;conditional_scripts&#039; );\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"override-parent-theme-funkcija\">Override parent theme funkcija<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Parent theme ima ovu funkciju\nfunction parent_theme_function() {\n    return &#039;Parent value&#039;;\n}\n\n\/\/ U child theme-u mo\u017eete override-ati ako parent koristi function_exists\nif ( ! function_exists( &#039;parent_theme_function&#039; ) ) {\n    function parent_theme_function() {\n        return &#039;Child value&#039;;\n    }\n}\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"best-practices-za-child-theme-development\">Best practices za child theme development<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-organizacija-datoteka\">1. Organizacija datoteka<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nchild-theme\/\n\u251c\u2500\u2500 style.css\n\u251c\u2500\u2500 functions.php\n\u251c\u2500\u2500 screenshot.png\n\u251c\u2500\u2500 css\/\n\u2502   \u251c\u2500\u2500 custom.css\n\u2502   \u2514\u2500\u2500 responsive.css\n\u251c\u2500\u2500 js\/\n\u2502   \u251c\u2500\u2500 custom.js\n\u2502   \u2514\u2500\u2500 navigation.js\n\u251c\u2500\u2500 images\/\n\u2502   \u2514\u2500\u2500 logo.png\n\u2514\u2500\u2500 templates\/\n    \u251c\u2500\u2500 header.php\n    \u2514\u2500\u2500 footer.php\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"2-komentiranje-koda\">2. Komentiranje koda<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/**\n * Custom funkcija za dodavanje schema markup-a\n * \n * @param string $type Schema tip\n * @return void\n *\/\nfunction add_schema_markup( $type = &#039;Organization&#039; ) {\n    \/\/ Implementacija\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-verzioniranje\">3. Verzioniranje<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Koristite Git za pra\u0107enje izmjena:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\ncd \/path\/to\/child-theme\ngit init\ngit add .\ngit commit -m &quot;Initial child theme setup&quot;\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"4-prefix-za-funkcije\">4. Prefix za funkcije<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/\/ Koristite prefix da izbjegnete konflikte\nfunction mm_custom_function() {  \/\/ mm = MasteryMesh prefix\n    \/\/ kod\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"5-dokumentacija\">5. Dokumentacija<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kreirajte <code>README.md<\/code> u child theme direktoriju:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">markdown<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\n# Blocksy Child Theme\n\n## Izmjene\n- Custom header layout\n- Modified footer widgets\n- Additional CSS for mobile responsiveness\n\n## Custom funkcije\n- `mm_custom_breadcrumbs()` - Custom breadcrumb navigation\n- `mm_related_posts()` - Related posts section\n\n## Verzije\n- 1.0.0 - Initial release\n- 1.1.0 - Added custom post types\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"child-theme-za-popularne-teme\">Child theme za popularne teme<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"astra-theme\">Astra Theme<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/*\nTheme Name:   Astra Child\nTemplate:     astra\nVersion:      1.0.0\n*\/\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"generate-press\">GeneratePress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/*\nTheme Name:   GeneratePress Child\nTemplate:     generatepress\nVersion:      1.0.0\n*\/\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"ocean-wp\">OceanWP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/*\nTheme Name:   OceanWP Child\nTemplate:     oceanwp\nVersion:      1.0.0\n*\/\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"kadence\">Kadence<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">css<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: css; title: ; notranslate\" title=\"\">\n\/*\nTheme Name:   Kadence Child\nTemplate:     kadence\nVersion:      1.0.0\n*\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Savjet:<\/strong> Uvijek provjerite dokumentaciju teme jer neke premium teme imaju specifi\u010dne zahtjeve za child theme-ove.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"migracija-s-parent-na-child-theme\">Migracija s parent na child theme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ako ve\u0107 imate aktivnu stranicu s modificiranom parent temom:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"korak-1-backup\">Korak 1: Backup<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Napravite kompletnu sigurnosnu kopiju:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Baza podataka<\/li>\n\n\n\n<li>Svi datoteke<\/li>\n\n\n\n<li>Posebno <code>\/wp-content\/themes\/parent-theme\/<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"korak-2-kreirajte-child-theme\">Korak 2: Kreirajte child theme<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Slijedite bilo koju od gore navedenih metoda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"korak-3-kopirajte-prilagodbe\">Korak 3: Kopirajte prilagodbe<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CSS izmjene:<\/strong> Kopirajte iz parent <code>style.css<\/code> u child <code>style.css<\/code><\/li>\n\n\n\n<li><strong>PHP izmjene:<\/strong> Kopirajte modificirane template-e u child direktorij<\/li>\n\n\n\n<li><strong>functions.php:<\/strong> Pa\u017eljivo kopirajte samo custom funkcije<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"korak-4-testirajte-na-staging-okruzenju\">Korak 4: Testirajte na staging okru\u017eenju<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">NE aktivirajte direktno na produkciji! Testirajte prvo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kreirajte staging kopiju stranice<\/li>\n\n\n\n<li>Aktivirajte child theme<\/li>\n\n\n\n<li>Provjerite sve stranice<\/li>\n\n\n\n<li>Testirajte funkcionalnost<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"korak-5-aktivacija-na-produkciji\">Korak 5: Aktivacija na produkciji<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kada je sve testirano:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aktivirajte child theme<\/li>\n\n\n\n<li>Odmah provjerite homepage<\/li>\n\n\n\n<li>Pregledajte key stranice<\/li>\n\n\n\n<li>Provjerite admin funkcionalnost<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"troubleshooting-checklist\">Troubleshooting checklist<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\u2610 Je li Template: parametar to\u010dan?\n\u2610 Postoji li parent tema u \/themes\/?\n\u2610 Je li child theme aktiviran?\n\u2610 Je li functions.php ispravno formatiran?\n\u2610 Ima li PHP gre\u0161aka? (provjeri debug.log)\n\u2610 Jesu li file permissions ispravne?\n\u2610 Konflikti s pluginovima?\n\u2610 Cache clearing (browser + server + plugin)\n\u2610 Je li .css u\u010ditan? (provjeri Page Source)\n\u2610 Postoji li CSS specifi\u010dnost problem?\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"zakljucak\">Zaklju\u010dak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Child theme je jednostavan ali mo\u0107an alat koji \u0161titi va\u0161 rad i omogu\u0107ava profesionalan WordPress development workflow. Bez obzira jeste li po\u010detnik koji \u017eeli promijeniti boju gumba ili developer koji gradi kompleksnu web aplikaciju, child theme je best practice koja se isplati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Klju\u010dne prednosti:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 Za\u0161tita prilagodbi pri a\u017euriranjima<\/li>\n\n\n\n<li>\u2705 \u010cist i organiziran kod<\/li>\n\n\n\n<li>\u2705 Mogu\u0107nost eksperimentiranja bez straha<\/li>\n\n\n\n<li>\u2705 Profesionalan development workflow<\/li>\n\n\n\n<li>\u2705 Verzioniranje i timski rad<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Va\u0161i sljede\u0107i koraci:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kreirajte svoj prvi child theme koriste\u0107i gornje upute<\/li>\n\n\n\n<li>Dodajte minimalne CSS izmjene za testiranje<\/li>\n\n\n\n<li>Dokumentirajte sve prilagodbe<\/li>\n\n\n\n<li>Postavite Git verzioniranje<\/li>\n\n\n\n<li>Educirajte se dalje o WordPress templating sistemu<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Child theme nije luksuz &#8211; to je nu\u017enost za svakoga tko ozbiljno radi s WordPressom. Investirajte 15 minuta u kreiranje child theme-a danas, i u\u0161tedjeti \u0107ete sate frustracije u budu\u0107nosti.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Trebate pomo\u0107 s WordPress developmentom?<\/strong> MasteryMesh nudi usluge kreiranja custom child theme-ova, migracije postoje\u0107ih stranica, i WordPress optimizacije. Kontaktirajte nas za besplatnu konzultaciju o va\u0161em projektu.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ako ste ikada poku\u0161ali prilagoditi WordPress temu i zatim izgubili sve promjene nakon a\u017euriranja, ovaj&#8230;<\/p>\n","protected":false},"author":1,"featured_media":370,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-tips"],"_links":{"self":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/comments?post=360"}],"version-history":[{"count":10,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions"}],"predecessor-version":[{"id":371,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions\/371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/media\/370"}],"wp:attachment":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/media?parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/categories?post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/tags?post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}