Kompletný sprievodca: Ako vytvoriť vlastný typ obsahu vo WordPresse
Ako vytvoriť vlastný typ obsahu vo WordPresse – kurzy, polia cez ACF a šablóny. Komplexný návod.
WordPress nie je len blog. Je to výkonný CMS, ktorý dokáže spracovať akýkoľvek typ obsahu – ak vieš, ako na to. V tomto rozsiahlejšom návode ti ukážem krok za krokom, ako si vytvoriť vlastný typ obsahu (Custom Post Type), pridať k nemu vlastné polia (Advanced Custom Fields) a zobraziť všetko vo vlastnej šablóne.
📦 Čo je vlastný typ obsahu (Custom Post Type)?
WordPress má predvolene posts
(príspevky) a pages
(stránky). Vlastný typ obsahu – tzv. CPT – ti umožní vytvoriť niečo nové, špecifické. Napr.:
- Kurzy – pre vzdelávací portál
- Recepty – pre blog o varení
- Projekty – pre portfólio agentúry
- Produkty – pre e-commerce riešenie mimo WooCommerce
Každý typ môže mať svoje vlastné údaje, kategórie, šablóny a zobrazenie.
🔨 Vytvorenie vlastného post typu „kurz“
Do functions.php
(alebo pluginu) vlož:
function vytvor_cpt_kurzy() {
register_post_type('kurz', [
'labels' => [
'name' => 'Kurzy',
'singular_name' => 'Kurz'
],
'public' => true,
'has_archive' => true,
'rewrite' => ['slug' => 'kurzy'],
'menu_icon' => 'dashicons-welcome-learn-more',
'supports' => ['title', 'editor', 'thumbnail', 'excerpt']
]);
}
add_action('init', 'vytvor_cpt_kurzy');
Po uložení sa v admin rozhraní zobrazí nová sekcia „Kurzy“.
🧩 Pridanie vlastných polí pomocou ACF
Nainštaluj a aktivuj plugin Advanced Custom Fields. Potom:
- V admin rozhraní → ACF → Field Groups → Pridať novú
- Nazvi ju napr. „Detaily kurzu“
- Pridaj polia: napr. „Lektor“ (text), „Trvanie“ (text), „Cena“ (number)
- Nastav Location:
Post Type is equal to kurz
- Ulož
Teraz, keď pridáš nový kurz, zobrazia sa aj tieto vlastné polia.
🎨 Šablóny pre vlastný typ obsahu
single-kurz.php
<?php get_header(); ?>
<main>
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
<ul>
<li><strong>Lektor:</strong> <?php the_field('lektor'); ?></li>
<li><strong>Trvanie:</strong> <?php the_field('trvanie'); ?></li>
<li><strong>Cena:</strong> <?php the_field('cena'); ?> €</li>
</ul>
</main>
<?php get_footer(); ?>
archive-kurz.php
<?php get_header(); ?>
<main>
<h1>Všetky kurzy</h1>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<article>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p>Lektor: <?php the_field('lektor'); ?></p>
<p>Cena: <?php the_field('cena'); ?> €</p>
</article>
<?php endwhile; endif; ?>
</main>
<?php get_footer(); ?>
📚 Bonus: vlastné kategórie (taxonómie)
Chceš napr. filtrovať kurzy podľa oblasti? Pridaj vlastnú taxonómiu:
function registruj_taxonomiu_oblast() {
register_taxonomy('oblast', 'kurz', [
'label' => 'Oblasť',
'hierarchical' => true,
'rewrite' => ['slug' => 'oblast']
]);
}
add_action('init', 'registruj_taxonomiu_oblast');
🧠 Záver
Vďaka Custom Post Types, ACF a vlastným šablónam si vieš vo WordPresse vytvoriť plnohodnotnú CMS štruktúru – niečo ako vlastný mini systém na mieru. Už žiadne „hackené“ príspevky – tvoje kurzy, projekty či produkty môžu mať vlastnú logiku, vlastný dizajn a správanie.
V ďalšom článku si môžeme ukázať, ako tieto dáta zobraziť cez vlastný shortcode alebo REST API.