Pokud začínáte s WordPressem, pravděpodobně jste se setkali s termínem Custom Post Type (CPT – v překladu vlastní typ příspěvku).
Tento nástroj vám umožňuje rozšířit základní typy příspěvků ve WordPressu (defaultně jsou ve WP například příspěvky a stránky), a vytvořit tak vlastní typy obsahu, které se hodí pro specifické potřeby vašeho webu. V tomto článku si podrobněji ukážeme, co to Custom Post Type je, proč ho používat, a jak vám může pomoci lépe organizovat obsah na vašem webu.
Příklad z praxe: Vytvoření Custom Post Type pro psy
Představme si, že spravujete web zaměřený na zvířata, konkrétně na psy. Pro lepší organizaci obsahu by bylo ideální vytvořit vlastní typ příspěvku, který bude sloužit právě pro ně. Pomocí Custom Post Type (CPT) tedy vytvoříme nový typ příspěvku „Psi k adopci“.

U tohoto typu příspěvku jsem nastavil potřebné skupiny polí, jako je
- bližší informace
- věk
- obrázek psa
- váha

Přidané psy můžeme následně zobrazit na webu (nejčastěji pomocí query loopu)
Výhody použití Custom Post Type (CPT) v WordPressu
- Lepší organizace obsahu – oddělení různých typů obsahu (např. psi, produkty).
- Přizpůsobení struktury – vlastní pole a taxonomie pro specifické informace.
- Jednoduchá správa – snadná správa různých typů obsahu v administraci.
- SEO přizpůsobení – optimalizace URL, meta tagů pro lepší SEO.
- Snadné zobrazení – použití WP_Query, nebo Query Loop pro zobrazení specifického obsahu.
- Lepší uživatelský zážitek – jednodušší navigace a filtrování obsahu.
- Unikátní šablony – možnost použití specifických šablon pro každý typ obsahu.
Jak ve WordPressu vytvořit Custom Post Type, neboli vlastní typ příspěvku?
Nabízí se hned několik možností, uvedeme si ty nejčastější:
- Ruční zápis v kódu – pomocí funkce register_post_type() v souboru functions.php nebo v pluginu.
- Použití pluginu – např. plugin Advanced Custom Field (ACF), který umožňuje snadno vytvořit CPT bez kódování.
- Vytvoření vlastních šablon pro CPT – vlastní šablony pro zobrazení jednotlivých položek a archivů (např. single-{post_type}.php nebo archive-{post_type}.php).