Dvě různé WordPress šablony na jednom blogu

Tento článek volně navazuje na můj předchozí článek s názvem: Speciální šablona pro konkrétní rubriku, stránku či příspěvek.

V něm je představeno řešení č. 1, kdy pro kategorii, příspěvek nebo stránku vytvoříme speciální šablonu pomocí tzv. template slugs, kdy vestavěná hierarchie užitích šablon, vždy nejdříve kontroluje o jaký obsah se jedná (například kategorie, stránka) a poté hledá existující šablonu v konkrétním pořadí.

Pro kategorii s názvem “Moje Kategorie” a s id=3 vypadá rozhodovací proces takto:

1) jde o kategorii? Ano
2) Existuje v šabloně soubor s názvem category-moje-kategorie.php? Ano, tak jej použij. Ne, bod 3
3) Existuje v šabloně soubor s názvem category-3.php? Ano, tak jej použij. Ne, bod 4.
4) Existuje v šabloně soubor s názvem category.php? Ano, tak jej použij. Ne, bod 5.
5) Existuje v šabloně soubor s názvem archive.php? Ano, tak jej použij. Ne, bod 6.
6) Použij soubor index.php (ten v každé šabloně musí existovat, a pokud neexistujte v child-template tak v parent template uričtě ano).

Problematiku demonstruje i obrázek umístěný v kodexu. Ten obsahuje rozhodovací procesy pro všechny druhy obsahu WordPressu.

Takže již víme, že pro vytvoření speciální šablony pro jednu konkrétní rubriku nám stačí nakopírovat soubor category.php (nebo archive.php či index.php – podle toho který v naší šabloně existuje) a přejmenovat jej buď do tvaru se slugem (čili názvem v pěkné url – s pomlčkami namísto mezer a bez diakritiky) a nebo s id. No a poté již můžeme upravovat či zcela od píky vytvářet speciální zobrazení.

Úprava hlavičky, patičky a sidebaru

No, ale co když chceme upravit také hlavičku, patičku či sidebar? Na to nám slouží parametr funkcí get_header(), get_footer()get_sidebar().

Všem třem funkcím lze shodně přidat do jejich volání parametr s názvem, který poté zobrazí konkrétní soubor. Čili pokud chceme mít speciální šablonu pro hlavičku v naší template kategorie, upravíme volání funkce get_header(); v šabloně naší speciální kategorie. Třeba v souboru category-moje-kategorie.php.

<?php get_header('moje-kategorie'); ?>

Tato funkce bude hledat soubor s názvem header-moje-kategorie.php. Analogicky můžeme volat i další dvě zmíněné funkce:

get_footer('moje-kategorie'); //hledá soubor footer-moje-kategorie.php
get_sidebar('moje-kategorie'); //hledá soubor sidebar-moje-kategorie.php

Tím si můžeme zcela přizpůsobit výpis obsahu jedné konkrétní kategorie, stránky či příspěvku.

Snad jen jako poznámku pod čarou berte informaci, že pokud chceme rozdílné zobrazení homepage od kategorie či příspěvku, stačí vytvořit v šabloně soubory category.php a single.php a případně z nich volat jinou hlavičku, patičku a sidebar.

Něco jiného je když cheme vytvořit speciální šablonu pro stránku, která je volitelná z administrace. Ovšem tím jsem se již zabýval v předchozím článku.

Jak vytvořit speciální šablonu pro všechny příspěvky v jedné konkrétní kategorii rozebírám v jiném článku.