Snad každý, kdo si nainstaluje WordPress se dřív nebo později pokusí udělat do šablony nějaký zásah. Ovšem nikdy nezasahujte do defaultní šablony (u WordPressu 3.0 a vyšším jde o šablony Twenty Ten v adresáři twentyten). V případě problémů tak budete mít jistotu, že máte šablonu, na kterou můžete přepnou a mít aspoň základní funkční web.
Pro jednodušší úpravy si vytvořte odvozenou šablonu ( Child theme)
V adresáři /wp-content/themes se při defaultní instalaci bez dodatečných šablon nachází jen adresář twentyten s defaultní šablonou. Na této úrovni si vytvořte nový adresář (složku) s názvem vlatní šablony. Třeba “sablona” (vyvarujte se háčkům a čárkám, pro jistotu).
style.css je základ, víc nic nepotřebujete
K vytvoření vlastní odvozené šablony vám stačí jeden jediný soubor v této složce. A sice soubor s názvem “style.css” (malým písmem).
Do tohoto souboru vložíte následující kód:
/*
Theme Name: Šablona
Theme URI: http: //priklad.cz/
Description: Vlastní šablona odvozená od Twenty Ten
Author: Vaše jméno
Author URI: http: //vase-homepage.cz
Template: twentyten
Version: 0.1.0
*/
Theme name je název vaší šablony, ten si zvolte libovolný (pakliže ste si vytvářeli vlastní šablonu z dříve modifikované šablony, přjemenujte si ji tak, aby název byl odlišný od “Twenty Ten”)
Theme URI je adresa vašeho tématu, pokud byste jej třeba někde propagovali a udělali pro něj vlastní webovou stránku, tak zde by byla adresa této propagační stránky. Někdy se také uvádí stránka pro kterou je šablona dělána
Description je popis tématu. Čím bylo inspirováno a podobně
Author: vaše jméno, vašich 15 vteřin slávy
Author URI: pakliže máte nějakou vlastní webovou stránku, šup sem s ní
Template: jediný povinný řádek, který nelze vynechat. Musí obsahovat adresář ve kterém je šablona od které je ta vaše odvozena. Pozor, tato položka je case-sensitive (čili je rozdíl mei malými a velkými písmeny)
Version: verze vaší šablony. Buď rovnout 1.0 nebo raději opatrně začněte s 0.1
Opravdu si dejte pozor na položku Template. Ověřte, jestli máte správný název adresáže původní šablony a jestli tato šablona v daném adresáři skutečně je. Pakliže třeba s šablonou nějak manipulujete, může se stát, že šablonu nakopírujete o úroveň níže ( wp-content/themes/twentyten/twentyten ) a pak vám odvozená šablona nebude fungovat.
Dále do souboru style.css patří ještě jeden řádek. A sice tento:
@import url("../twentyten/style.css");
Kde namísto twentyten uvedete stejnou hodnotu, jako u parametru Template. Proč vkládáme tento řádek? Inu proto, že soubor style.css odvozené šablony úplně nahrazuje ten ze šablony původní.Čili, pakliže byste tento řádek nevložili, z původní šablony by se nenahrály vůbec žádné css styly. A to dost pravděpodobně nechcete.
Po tomto řádku již můžete vesele vkládat vlastní styly. Pro orientaci je ještě dobré připomenout, že css má tu vlastnost, že později definované styly přepisují ty dříve uvedené. Tedy, pokud změníte barvu nadpisů h2 v tomto souboru, nepoužije se hodnota nadefinovaná v css původní šablony, i když je celý jeho obsah, díky výše uvedenému řádku, namportován.
functions.php na rozšíření funkcionality
Vedle souboru style.css, který je základním kamenem každé šablony, má spefické vlastnosti ještě soubor functions.php. Jde o soubor, ve kterém uživatel může rozšiřovat funkcionalitu šablony o vlasní funkce. Může si vytvořit vlastní funkce prakticky na cokoli. Mnohé tipy na to co a jak udělat spoléhají právě na tento soubor.
To, co byste měli vědět je to, že tento soubor nepřepisuje soubor functions.php původní šablony, ale načítá se spolu s ním. Přesněji řečeno těsně před ním. Lze tedy nelze takto redeklarovat funkce uvedené v původní šabloně, ale je možné je ve vaší odvozené šabloně bez dalšího užít.
Další soubory odvozené šablony
Tyto dva soubory vám již bohatě stačí k proměně vzhledu a funkcionality šablony. Ovšem můžete chtít také změnit způsob výpisu zobrazení článku, nebo stránky, kategorie či rovnou úvodní stránky. I toto odvozená šablona zvládne. Pakliže adresář odvozené šablony obsahuje nějaký soubor (vyjma style.css a functions.css), který je také v původní šabloně, použije se namísto původního ten, který je obsažený v odvozené šabloně. A pakliže soubor, který by se normálně použil v odvozené šabloně naopak není, použije se ten, který je v šabloně původní. A to je přeci geniální, nemusíte myslet na všechny soubory a jen si měnit to, co přesně potřebujete.
Takže když budete chtít upravit výpis článku, jednoduše si do adresáře své odvozené šablony nakopírujete soubor single.php z původní šablony a začnete editovat. Nic víc, nic míň.
Ještě zde pro vás uvedu jeden velmi důležitý diagram. Ten ukazuje jak WordPress vybírá soubory pro zobrazení konkrétní stránky (příspěvku, rubriky, stránky, stránky s výsledkama hledání a podobně). Všimněte si, že vše má fallback na index.php. Čili, pokud vaše původní šablona některý ze souborů, který byste chtěli editovat nemá, vezměte druhý či třetí, a tak dále, v pořadí, pokud existuje, a pakliže ne, vždy můžete sáhnout po index.php a ten přejmenovat na vámi požadovaný soubor (single.php, page.php, category.php, search.php a tak dále a tak dále).
Zdroj: http://www.wp-tricks.co.il/
Co dělat, když už jste do defaultní šablony zasáhli? Jak z takové šablony udělat odvozenou?
To se stává často. Ale i toto má své řešení. Stáhněte si znovu vaší instalaci WordPressu (anglicky: http://wordpress.org/, nebo česky: http://cs.wordpress.org/), rozbalte archív a v adresáři wp-content/themes uvidítě původní šablonu. Adresář s šablonou přejmenujte na twentyten2 a nakopírujte jej do vaší instalace na serveru do složky wp-content/themes. V administraci aktivujte tuto staronovou šablonu. Bude mít stejný název, ale v šedivém obdélníčku následujícím za větou: “Všechny soubory této šablony jsou uloženy v” uvidíte “themes/twentyten2″.
Poté můžete již přejmenovat adresář vaší šablony (z twentyten) na vlastní název a změnit název šablony v souboru style.css (řádek Theme name). Nyní musíte v administraci opět aktivovat tuto vaší šablonu (již se bude zobrazovat pod vaším jménem). Po její úspěšné aktivaci přejmenujte adresář “twentyten2″ na “twentyten”. Tím umožníte budoucí aktualizaci této šablony v novějších verzích WordPressu.
No a nyní již zpět k vaší odvozené šabloně. Do souboru style.css přidejte řádek “Template: twentyten”. Samozřejmě můžete veškerý další obsah souboru style.css smazat a nahradit jej importovacím řádkem. Dalším důležitým krokem je smazání všech funkcí v souboru functions.php (pakliže neobsahuje nějaké vámi definované, ty můžete zachovat). No a poté už můžete mazat všechny soubory, které jste doposud neupravili. Pakliže ste neupravovali soubor 404.php a víte, že jej upravovat ani nebudete, klidně jej smažte. Obdobně pro všechny soubory, které jste neupravovali, ani upravat chtít nebudete.
A kde je nějaká výhoda odvozených šablon?
Možná se ptáte, proč podstupovat toto martýrium a proč si rovnou nenakopírovat celý adresář twentyten do vlastního názvu a nepřepsat název šablony ve style.css a mít tak již kompletní šablonu a neupravovat ji komplet?
Odvozené šablony vám umožní bezpečný upgrade vaší původní šablony. Pakliže budoucí verze WordPressu upgraduje šablonu Twenty Ten, bude vaše odvozená šablona čerpat upgradovaný soubor functions.php, upgradovaný index.php (pakliže nemáte vlastní) a také upgradovaný style.css. Totéž platí o šabloně, kterou si někde koupíte a její autor vydá další, třeba opravnou, verzi. Můžete si poté upgradovat původní šablonu bez toho, anižbyste přišli o své úpravy. Jde tedy především o bezpečnou úpravu šablon.