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.

Kompletný sprievodca: Ako vytvoriť vlastný typ obsahu vo WordPresse
Photo by Hal Gatewood / Unsplash

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:

  1. V admin rozhraní → ACF → Field Groups → Pridať novú
  2. Nazvi ju napr. „Detaily kurzu“
  3. Pridaj polia: napr. „Lektor“ (text), „Trvanie“ (text), „Cena“ (number)
  4. Nastav Location: Post Type is equal to kurz
  5. 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.