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.
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.