WordPress ekosystém

Child theme

Podřízená šablona dědící vlastnosti rodičovské – úpravy zde přežijí aktualizaci rodičovské šablony

(Podřízená šablona)

Co je child theme

Child theme je podřízená šablona WordPressu, která dědí vzhled i funkce od šablony rodičovské a slouží jako místo pro vlastní úpravy. Obsahuje pouze to, co se od rodiče liší; zbytek si od něj bere.

Problém, kvůli kterému vznikl

Vývojář sáhne do souborů šablony, přidá kód do patičky nebo upraví výpis produktů a všechno šlape. Za měsíc vyjde nová verze šablony, někdo ji nainstaluje a úprava je pryč. Bez varování, bez hlášky, prostě zmizela spolu s přepsanými soubory.

Neaktualizovat kvůli tomu není řešení, protože aktualizace zavírají bezpečnostní díry. Potomek uklidí obojí najednou: rodičovská šablona se aktualizuje normálně a úpravy leží v souborech, kterých se aktualizace vůbec netýká.

Rodič a potomek

Rodičovská šablona je ta plnohodnotná, obsahuje všechny šablonové soubory i funkce. Potomek se aktivuje místo ní a WordPress pak čte oba: co najde u potomka, má přednost, co u něj chybí, dobere u rodiče. V administraci je jako aktivní vidět vždycky potomek, i když většina vzhledu pochází odjinud.

Na potomka nejčastěji narazím ve chvíli, kdy se ozve klient, že mu po aktualizaci zmizela úprava v patičce nebo měřicí kód. Podívám se do souborů a žádný potomek tam není, předchozí dodavatel psal rovnou do rodiče. Měřicí kódy proto raději nasazuji přes Google Tag Manager, ať vůbec nejsou svázané se šablonou. Vzhled se za život webu vymění, měření by mělo zůstat.

Časté otázky

Potřebuje child theme každý web?

Ne. Pokud se všechno dá nastavit v administraci a nikdo nepíše vlastní kód, je zbytečný. Jakmile přijde první úprava v souborech šablony, má smysl ho založit.

Co se stane, když child theme smažu?

Web se vrátí ke vzhledu rodičovské šablony a všechny úpravy, které byly jen v potomkovi, přestanou platit.

Jde child theme vytvořit dodatečně?

Jde, ale úpravy zapsané v rodičovské šabloně se musí nejdřív najít a přenést ručně. Levnější je založit potomka hned na začátku.