..aby ji bylo možné aktualizovat? Na první pohled si možná řeknete, že je to snadné, vždyť je to PHP a prostě to upravíme. Ale to byste brzy zplakali nad výdělkem! A já vám vysvětlím proč.
Je to častá chyba – potřebujete změnit vzhled webu, tak více či méně odborným způsobem změníte soubory šablony. Dosáhnete svého cíle, ale nevědomky si zakládáte na velký problém. Šablonu totiž nemůžete aktualizovat, jinak byste o své úpravy přišli. Necháváte tedy šablonu neaktualizovanou.
To samozřejmě není dobrý stav, protože originální šablona se pravděpodobně nadále vyvíjí, autoři opravují chyby a přidávají nové funkce. Určitě byste tyto změny chtěli i ve své variantě, ale jak to udělat, když při aktualizaci přijdete o své úpravy?
Podřízená šablona
WordPress má pro tyto účely mechanismus pojmenovaný child theme, česky „podřízená šablona“. Samozřejmě tedy existuje parent theme, česky „rodičovská šablona“. Rodičovskou šablonou je originální šablona, kterou můžete nadále aktualizovat, ale nikdy ji nebudete přímo upravovat. Podřízenou šablonou je pak odvozená šablona, do níž umístíte pouze změny vůči rodičovské šabloně.
Založíte ji v novém adresáři (např. wp-content/themes/coumiwp/) pomocí souboru style.css a functions.php. Ve style.css je nezbytné vložit nejprve hlavičku, v níž uvedete název adresáře, kde je uložena rodičovská šablona (jak vidíte, nejde o její název, ale skutečně adresář). Zde je to adresář generatepress:
/* Theme Name: Co umí WordPress Theme URI: https://coumiwp.cz Description: Vzhled webu Co umí WordPress Author: Vlastimil Ott Author URI: https://wp-admin.cz Template: generatepress Version: 0.1 Text Domain: cowp */
Nyní tedy můžete tuto šablonu aktivovat v sekci Vzhled > Šablony a můžete ji taky upravovat. Rodičovská šablona zůstává netknutá a aktuální, změny ukládáte do své podřízené šablony. Podřízená šablona převezme drtivou většinu nastavení od rodiče, obvykle vypadne jen propojení nabídek s pozicemi, takže je v sekci Vzhled > Menu potřeba znovu potvrdit, kde se která nabídka má zobrazovat.
Do souboru functions.php vkládáte obsluhy hooků nebo upravujete načítání skriptů a stylů. Obvykle je nutné načíst styl rodičovské šablony:
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
Podřízená šablona kopíruje strukturu rodičovské, takže lze téměř vždy nahradit např. soubor template-parts/loops/loop1.php, který je v rodičovské šabloně, souborem v podřízené šabloně, který leží ve stejné adresářové struktuře.
Toho se využívá v případě WooCommerce – jednotlivé změnové soubory ukládáte do adresáře woocommerce v podřízené šabloně podle struktury, kterou najdete přímo v balíku WooCommerce. Můžete tak měnit produktovou stránku, výpisy produktů nebo texty e-mailů.
Hledáte místo, kde získat šablonu vzhledu? Vyberte si z našeho seznamu: WordPress šablony zdarma i placené.
Super! Díky moc! Velmi pomohlo