Shortcodes vo WordPresse: Ako fungujú a ako si vytvoriť vlastné

Ako fungujú shortcody vo WordPresse a ako si vytvoriť vlastné – praktické príklady a bezpečnosť.

Shortcodes vo WordPresse: Ako fungujú a ako si vytvoriť vlastné
Photo by Alexander Sinn / Unsplash

Shortcode je jednoduchý spôsob, ako do WordPress obsahu vložiť dynamický prvok – bez toho, aby si písal HTML alebo PHP. V tomto článku si ukážeme, čo shortcody sú, ako ich používať a ako si vytvoriť vlastné – jednoduché aj pokročilejšie.

💡 Čo je to shortcode?

Shortcode vyzerá ako [nazov] a môže mať aj parametre: [galeria id="123"].

Po zobrazení stránky sa shortcode nahradí výstupom funkcie, ktorú definuješ v kóde (napr. HTML, tabuľka, formulár, výpis dát atď.).

🧪 Základný príklad: Vlastný pozdrav

📄 Kód do functions.php:

function moj_pozdrav_shortcode() {
  return '<p>Ahoj! Vitaj na mojej stránke.</p>';
}
add_shortcode('pozdrav', 'moj_pozdrav_shortcode');

📌 Použitie v obsahu:

[pozdrav]

👉 Výstup: Ahoj! Vitaj na mojej stránke.

🧩 Shortcode s parametrami

📄 Funkcia s atribútmi:

function citat_shortcode($atts) {
  $a = shortcode_atts([
    'autor' => 'Neznámy',
    'text' => 'Citát chýba.'
  ], $atts);

  return '<blockquote>' . esc_html($a['text']) . '<br><cite>' . esc_html($a['autor']) . '</cite></blockquote>';
}
add_shortcode('citat', 'citat_shortcode');

📌 Použitie:

[citat autor="Einstein" text="Predstavivosť je dôležitejšia ako vedomosti."]

🔁 Shortcode s obsahom medzi tagmi

Niekedy chceš spracovať aj text medzi [tag]...[/tag]. Príklad s vlastným zvýrazňovačom:

function highlight_shortcode($atts, $content = null) {
  return '<span style="background:yellow;">' . do_shortcode($content) . '</span>';
}
add_shortcode('highlight', 'highlight_shortcode');
[highlight]Dôležitý text[/highlight]

📃 Shortcode s dynamickými dátami (napr. výpis článkov)

function vypis_blog_shortcode($atts) {
  $query = new WP_Query([
    'posts_per_page' => 3
  ]);

  $output = '<ul>';
  while($query->have_posts()) : $query->the_post();
    $output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
  endwhile;
  wp_reset_postdata();

  $output .= '</ul>';
  return $output;
}
add_shortcode('blog_novinky', 'vypis_blog_shortcode');

Použiješ jednoducho ako:

[blog_novinky]

👉 Zobrazí posledné 3 príspevky ako zoznam odkazov.

📦 Shortcode v šablóne PHP (nie len v editore)

Shortcode môžeš použiť aj priamo v PHP šablónach:

<?php echo do_shortcode('[pozdrav]'); ?>

To sa hodí, ak chceš shortcode použiť napr. v sidebare, pätičke, alebo vlastnej sekcii mimo obsahu.

🔐 Bezpečnostné tipy

  • Pri výstupe používaj esc_html(), esc_attr(), aby si ochránil výstup pred XSS útokmi.
  • Shortcody píš tak, aby nemohli spustiť ľubovoľný kód od používateľa.
  • Do shortcodov nikdy nevkladaj neoverené údaje priamo do databázy bez validácie.

🧠 Záver

Shortcody sú výborný nástroj, ak chceš pridať dynamiku do obsahu – od jednoduchých textov po výpisy z databázy. V ďalšom článku si ukážeme, ako vytvoriť „shortcode builder“ vo forme Gutenberg bloku alebo ako prepojiť shortcody s vlastným typom obsahu.