zpět na technikálie

WordPress shortcodes: Kompletní průvodce

Shortcode umožňuje vkládat dynamický obsah do stránek a příspěvků.

Kodér může shortcode vytvořit jednou a uživatel webu si ho může vkládat do webu.

Shortcody umožňují přidat na tvůj WordPress mnoho užitečných funkcí, aniž bys, jako uživatel, řešil PHP. Vytvořením vlastních shortcodů můžeš zjednodušit správu obsahu a přidat vlastní funkce pro web.

A co se dá do shortcodes dát? Prakticky cokoliv: od vypsání jednoho slova po načtení rezervačního formuláře.

WordPressito - Shortcodes

Datum poslední změny: 4. 3. 2026

Poznámka: Pokročilejší uživatel si shortcode může tvořit sám. Článek můžeš číst jako přehled toho, co je možné. Nebo se do tématu ponoř víc a vytvoř si svůj první shortcode. Na konci článku ukazuju jak na vytvoření vlastního pluginu, kde shortcode zaregistruješ.

1. Vytvoření jednoduché PHP funkce

Nejprve si ukážeme, jak vytvořit jednoduchou PHP funkci, která sečte dvě čísla.

function my_simple_addition($a, $b) {
    $sum = $a + $b;
    echo "Součet čísel $a a $b je: $sum";
    return $sum;
}

Tato funkce přijímá dva parametry ($a$b), sečte je, výsledek vypíše a zároveň vrátí hodnotu součtu.

Pokud bychom chtěli funkci použít v PHP šabloně/vlastním pluginu/PHP snippetu, volali bychom ji takto:

<?php my_simple_addition(5, 3); ?>

Výsledkem na webu v místě vložení kódu je: "Součet čísel 5 a 3 je: 8".

PHP funkci však běžný uživatel volat nebude. Pojďme to vyřešit.

2. Vytvoření základního shortcodu bez argumentů

Přetvoříme funkci na shortcode, který bude možné použít přímo v obsahu stránek nebo příspěvků. Bez znalosti PHP. Začneme s jednoduchým shortcodem bez argumentů.

// Jednoduchá funkce pro demonstraci shortcodu bez argumentů
function simple_addition_shortcode() {
    // Pro jednoduchost budeme sčítat dvě pevně dané hodnoty
    $a = 5;
    $b = 3;
    $sum = $a + $b;

    return "Součet čísel $a a $b je: $sum";
}

// Registrace shortcodu
add_shortcode('secti_zaklad', 'simple_addition_shortcode');

Vlastní shortcode použijeme kdekoliv na webu použitím WP bloku shortcode (zkrácený kód v CZ):

[secti_zaklad]

WordPress jej nahradí textem: "Součet čísel 5 a 3 je: 8"

Poznámka: Všimni si, že u shortcodu používám return místo echo. Je to proto, že shortcody musí vracet obsah, který má být vložen do stránky.

3. Přidání argumentů do shortcodu

Nyní vylepšíme náš shortcode tak, aby mohl přijímat vstupní argumetny, jako tomu bylo u původní funkce.

// Funkce pro sčítání dvou čísel
function my_simple_addition($a, $b) {
    $sum = $a + $b;
    return "Součet čísel $a a $b je: $sum";
}

// Funkce pro shortcode s argumenty
function addition_shortcode($atts) {
    // Definování výchozích hodnot pro atributy
    $atts = shortcode_atts(array(
        'a' => 0,
        'b' => 0,
    ), $atts, 'secti');

    // Převod hodnot na čísla pro správné sčítání
    $a = floatval($atts['a']);
    $b = floatval($atts['b']);

    // Vrácení výsledku funkce
    return my_simple_addition($a, $b);
}

// Registrace shortcodu
add_shortcode('secti', 'addition_shortcode');

Nyní můžeš ve svých stránkách nebo příspěvcích použít shortcode s vlastními hodnotami. Funkci jsem současně přejmenoval na "secti":

[secti a="10" b="20"]

Tento shortcode vypíše: "Součet čísel 10 a 20 je: 30"

4. Detailní pohled na shortcode_atts()

Funkce shortcode_atts() je klíčová pro práci s argumenty shortcodu. Má tři parametry:

  1. Výchozí hodnoty - asociativní pole výchozích hodnot pro vstupní argumenty
  2. Argumenty shortcodu - hodnoty zadané uživatelem
  3. Název shortcodu - slouží pro filtrování (nepovinné)
$atts = shortcode_atts(array(
    'a' => 0,  // Výchozí hodnota pro argument 'a' je 0
    'b' => 0,  // Výchozí hodnota pro argument 'b' je 0
), $atts, 'secti');

Tato funkce slouží k tomu, aby nastavila výchozí hodnoty pro argumenty, které uživatel nezadal

5. Praktické tipy a doporučení

Správné umístění kódu

Shortcode můžeš umístit:

  1. Do vlastního pluginu (custom plugin).
  2. Na méně vhodné místo functions.phpodvozené šablony (child theme).
  3. Nejméně vhodný je php snippet přes nějaký plugin typu Code Snippet.

Vytvoření vlastního pluginu pro shortcody

<?php
/**
 * Plugin Name: Moje Vlastni Shortcody
 * Description: Plugin obsahující užitečné shortcody pro web
 * Version: 1.0
 * Author: Vase Jmeno
 */

// Shortcode pro sčítání
function my_simple_addition($a, $b) {
    $sum = $a + $b;
    return "Soucet cisel $a a $b je: $sum";
}

function addition_shortcode($atts) {
    $atts = shortcode_atts(array(
        'a' => 0,
        'b' => 0,
    ), $atts, 'secti');

    $a = floatval($atts['a']);
    $b = floatval($atts['b']);

    return my_simple_addition($a, $b);
}
add_shortcode('secti', 'addition_shortcode');

// Zde můžete přidat další shortcody

Pozor na konflikty v názvu

Shortcody se musí jmenovat jedinečně, jinak hrozí konflikty s jinými pluginy. Zvaž přidání prefixu specifického pro tvůj web nebo plugin:

add_shortcode('mujweb_secti', 'addition_shortcode');

Použití shortcodu v PHP kódu

Pokud potřebuješ použít shortcode v PHP kódu (například v šabloně), použij funkci do_shortcode():

<?php echo do_shortcode('[secti a="10" b="20"]'); ?>

Potřebuješ shortcode?

Potřebuješ shortcode a nechce se ti psát? Napiš mi a nějak to vymyslíme. 😉

WordPressito

Měsíční newsletter pro majitele webů, kteří chtějí, aby jejich WordPress spolehlivě fungoval.

Dozvíš se:

🔌 Tipy na užitečné pluginy a nástroje.
🆕 Novinky z WordPress světa.
💡 Praktické návody a rady.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram