Vlastná WordPress téma: Šablóny, menu a widgety (2. diel)

Pokročilejšie šablóny vo WordPresse: single.php, archive.php, menu, widgety. Vlastná téma pokračuje.

Vlastná WordPress téma: Šablóny, menu a widgety (2. diel)
Photo by Hal Gatewood / Unsplash

V prvej časti sme si vytvorili základnú WordPress tému. Dnes sa posunieme ďalej – pridáme šablóny pre jednotlivé typy obsahu, vlastné menu a widget oblasti, ktoré urobia tvoju tému oveľa flexibilnejšou.

📄 1. Šablóna pre samostatný príspevok: single.php

<?php get_header(); ?>
<main>
  <article>
    <h1><?php the_title(); ?></h1>
    <div><?php the_content(); ?></div>
  </article>
</main>
<?php get_footer(); ?>

Táto šablóna sa použije vždy, keď si niekto otvorí detail konkrétneho blogového príspevku.

📄 2. Šablóna pre stránky: page.php

<?php get_header(); ?>
<main>
  <article>
    <h1><?php the_title(); ?></h1>
    <div><?php the_content(); ?></div>
  </article>
</main>
<?php get_footer(); ?>

Používa sa pre bežné stránky – napr. „O nás“, „Kontakt“ a podobne.

📂 3. Šablóna pre archív: archive.php

<?php get_header(); ?>
<main>
  <h1><?php the_archive_title(); ?></h1>
  <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <article>
      <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
      <div><?php the_excerpt(); ?></div>
    </article>
  <?php endwhile; else: ?>
    <p>Žiadne príspevky.</p>
  <?php endif; ?>
</main>
<?php get_footer(); ?>

Využíva sa napríklad na výpis článkov podľa kategórie, autora alebo dátumu.

🔗 4. Navigácia: vlastné menu

📌 Registrácia v functions.php

function moja_tema_menu() {
  register_nav_menus([
    'hlavne_menu' => 'Hlavné menu',
  ]);
}
add_action('after_setup_theme', 'moja_tema_menu');

📌 Zobrazenie v header.php

<nav>
  <?php wp_nav_menu([
    'theme_location' => 'hlavne_menu',
    'container' => false
  ]); ?>
</nav>

Po aktivácii môžeš menu spravovať cez Admin → Vzhľad → Menu.

📦 5. Widget oblasti (napr. sidebar)

📌 Registrácia v functions.php

function moja_tema_widgety() {
  register_sidebar([
    'name' => 'Bočný panel',
    'id' => 'sidebar-1',
    'before_widget' => '<div class="widget">',
    'after_widget' => '</div>',
    'before_title' => '<h3>',
    'after_title' => '</h3>',
  ]);
}
add_action('widgets_init', 'moja_tema_widgety');

📌 Zobrazenie v šablóne

<aside>
  <?php if ( is_active_sidebar('sidebar-1') ) : ?>
    <?php dynamic_sidebar('sidebar-1'); ?>
  <?php endif; ?>
</aside>

🧠 Záver

Téma sa stáva plnohodnotnou, keď sa prispôsobí rôznym typom obsahu a dáva používateľovi kontrolu cez menu či widgety. V ďalšej časti sa pozrieme na šablóny pre blog, kategórie, vlastné typy príspevkov (CPT) a ich rozšírenie o vlastné polia.