O různých zobrazení vybraných příspěvků, stránek a kategorií jsem napsal již dva články:
Speciální šablona pro konkrétní rubriku, stránku či příspěvek
Dvě různé WordPress šablony na jednom blogu
Pokud ale chceme pro všechny příspěvky v dané kategorii užít rozdílný layout, a vůbec jinou šablonu, se slug a id si moc nevystačíme. V tom případě budeme muset využít komplikovanější techniky.
Musíme si vytvořit “prakticky prázný” soubor single.php, který bude obsahovat pouze rozhodovací algoritmus. Na to využijeme WordPress funkce in_category() a php funkce include() ve spolupráci s WordPress konstantou TEMPLATEPATH.
Obsah bude následující (v případě, že chceme speciální šalonu pro příspěvky v rubrice speciální a moje kategorie):
<php if ( in_category( array('specialni', 'moje-kategorie' ) ) ) { include (TEMPLATEPATH.'single-specialni.php'); }else { include (TEMPLATEPATH.'single-normalni.php'); } ?>
Přičemž soubor single-normalni.php bude obsahovat původní obsah souboru single.php. Popřípadě, pokud do této doby neexistoval single.php, obsah souboru index.php. A soubor single-specialni.php bude obsahovat upravený kód vašeho speciálního zobrazení všech příspěvků v kategorii speciální a moje kategorie.
Pozor, soubor single-normalni.php a single-specialni.php musí obsahovat get_header() a get_footer(), jako každý jiný tradiční soubor WordPress šablony. Jen, dle tohoto článku, upravený soubor single.php tyto funkce obsahovat nesmí.
Jak vytvářet speciální hlavičky a patičky a sidebary jsem probíral v předchozím článku.