Komplexní analýza vývoje temat pro WordPress: Praktický průvodce od základů po pokročilé dovednosti

Čtení za 3 minuty.
2026-03-16
2026-06-03
2,720
Získávám provize, když nakupujete prostřednictvím níže uvedených odkazů, aniž by vás to něco stálo navíc.

Poznejte základní strukturu WordPressových témat.

Téma WordPress je v podstatě něco, co se nachází na/wp-content/themes/V adresáři se nacházejí složky, které obsahují sadu souborů dodržujících určitá pravidla. Tyto soubory společně určují vzhled, uspořádání a některé funkce webové stránky. Porozumění architektuře tématu je prvním krokem při vývoji.

Nejzákladnější téma vyžaduje alespoň dvě soubory:style.cssindex.phpMezi nimi jestyle.cssNejde pouze o šablony stylů, ale také o metadata týkající se samotného tématu. Tyto informace jsou definovány v bloku komentářů na začátku souboru, a právě na základě jejich čtení WordPress v pozadí rozpoznává a zobrazuje vaše téma.

Funkce souboru hlaviček pro informace o tématu (theme information header file)

Soubor s hlavičkami informací o tématu se nachází na…style.cssNa nejvyšším místě se nachází speciální soubor, který slouží k nastavení základních informací o tématu. Tento soubor používá určitý formát poznámek k uvedení názvu tématu, autora, popisu, verze a dalších důležitých údajů. Jedná se vlastně o “občanský průkaz” tohoto tématu – bez něj by WordPress nemohl rozpoznat, o jaké téma se jedná.

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress temát od začátku až po dokonalost

Níže je příklad standardního informačního hlavičkového řádku (header):

UltaHost – hosting služby pro weby postavené na platformě WordPress
Záruka vrácení peněz do 30 dnů, neomezený šířka pásma a databáze, bezplatná ochrana proti DDoS útokům. Sleva 501 TP4T při nákupu na 3 roky.
/*
Theme Name: 我的第一个主题
Theme URI: https://example.com/my-first-theme/
Author: 开发者名称
Author URI: https://example.com/
Description: 这是一个用于学习的简洁WordPress主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-first-theme
*/

Mezi nimi,Text DomainPoužívá se pro internacionalizaci (i18n) a slouží k následnému použití funkcí pro překlad (např.)__()_e()Textové pole, které je nutné použít při…)

Hierarchický vztah mezi základními šablonovými soubory

WordPress využívá systém hierarchie šablon (Template Hierarchy) k určení toho, který soubor šablony by měl být použit k zobrazení konkrétní stránky. Jedná se o mechanismus vyhledávání postupujícího od specifických případů k obecným pravidlům. Například při přístupu k článku s ID 123 WordPress postupně prohledá následující soubory šablon:single-post-123.php -> single-post.php -> single.php -> singular.php -> index.phpVývojáři mohou snadno přizpůsobit různé typy stránek (hlavní stránka, stránky článků, kategorie atd.) odlišným rozvržením tím, že vytvoří soubory s konkrétními názvy.

Vytvoření základní šablony souboru pro tematické nastavení

Po zvládnutí základů infrastruktury potřebujeme vytvořit klíčové šablonové soubory, které poslouží jako „kostra“ webové stránky. Tyto soubory jsou napsány v kombinaci jazyků PHP a HTML a obsahují volání základních funkcí WordPressu, které umožňují dynamické načítání obsahu.

Vytvoření hlavičky a patičky webové stránky

Abychom dodrželi zásadu DRY (‘Don’t Repeat Yourself“) v kódu, obvykle oddělíme kód hlavičky a patičky, který je společný pro všechny stránky, do samostatných souborů.

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress temat: Od začátků pro začátečníky až po praktické aplikace v projektech

header.phpSoubory obvykle obsahují deklaraci typu dokumentu.Oblast (ve které musí být volán)wp_head()Funkce), stejně jako veřejné oblasti na vrcholu webové stránky, jako je logo a hlavní navigace. Voláníwp_head()Hooky jsou velmi důležité, protože umožňují samotnému jádru WordPressu, pluginům a temám vkládat do hlavičky stránek potřebné skripty a styly.

footer.phpSoubor obsahuje společné obsahy umístěné na spodní části webové stránky a ty jsou zavolány před koncem souboru.wp_footer()Funkce. Tento hook je spojen s…wp_head()Podobně se to používá k načítání skriptů na spodní straně stránky nebo k zobrazení dalších informací.

V hlavním šablonovém souboru používáme…get_header()get_footer()Funkce slouží k jejich načtení (zavádění).

Shared hosting na hosting.com
Vysoký výkon, vybavený procesorem AMD EPYC, úložištěm NVMe SSD a LiteSpeedem, nepřetržitá interní podpora odborníků 24 hodin denně a 7 dní v týdnu, pokročilá bezpečnostní opatření včetně SSL, ochrany proti útokům hrubou silou, malwaru a DDoS, úspora až 731 TB/měsíc.

Návrh hlavního cyklu a zobrazení článků

Jádrem zobrazení obsahu v WordPressu je “hlavní cyklus” (The Loop). Jedná se o standardní PHP cyklickou strukturu, která slouží k procházení seznamu článků (nebo stránek) nalezených na aktuální stránce a k jejich postupnému zobrazení.

Typický…index.phpStruktura souborů je následující:

<?php get_header(); ?>

<main id="primary" class="site-main">
    <?php
    if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();
            // 为每篇文章输出内容
            get_template_part( 'template-parts/content', get_post_type() );
        endwhile;
        the_posts_navigation(); // 输出文章导航(上一页/下一页)
    else :
        get_template_part( 'template-parts/content', 'none' ); // 没有文章时的内容
    endif;
    ?>
</main>

<?php get_sidebar(); // 可选,引入侧边栏 ?>
<?php get_footer(); ?>

Uvnitř cyklu lze použít řadu šablonovacích značek začínajících slovem “the_” k výstupu informací o článku.the_title()the_content()the_permalink()Atd. Pro větší modulárnost je obsah článků obvykle organizován pomocí…get_template_part()Funkce byly odděleny.template-parts/content.phpV takovém podtempletu.

Doporučujeme k přečtení. Průvodce vývojem WordPress temat: Vytvořte si své první téma od nuly

Přidání stylu a interaktivních funkcí k tématu

Moderní téma nemůže existovat bez pečlivě navrženého vzhledu a potřebných interaktivních funkcí. To zahrnuje uspořádání šablon stylů, registraci a řazení skriptů, stejně jako využití funkcí menu a bočních panelů v WordPressu.

Správné zavádění stylů a skriptů

Nikdy nepoužívejte šablony přímo ve svých dokumentech.<link><script>Zdrojové soubory s tagy by měly být nikoli hardkódovány, ale správným způsobem nastaveny pomocí vhodných nástrojů a konvencí.wp_enqueue_style()wp_enqueue_script()Funkce, a tyto operace poté připojte („mount“)…wp_enqueue_scriptsNa háčku.

Shared hosting od InterServeru
Sdílený hosting za 1 TB + 5 TB měsíčně za 2,50 USD, slevový kód tryinterserver pro první měsíc za 1 TB + 5 TB za 0,1 USD, a 461 skriptů cloudových aplikací k jednoduché instalaci.

To se obvykle vyskytuje v rámci tématu…functions.phpDokončeno v souboru:

function my_first_theme_scripts() {
    // 引入主题主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );

// 引入Google Fonts
    wp_enqueue_style( 'my-first-theme-google-fonts', 'https://fonts.googleapis.com/css2?family=Roboto&display=swap', array(), null );

// 引入主JavaScript文件
    wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), wp_get_theme()->get('Version'), true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

Tento přístup zajišťuje správu závislostí, předchází opakovanému načítání a je kompatibilní se systémem pluginů WordPress.

Registrovat navigační menu a oblast nástrojů

Aby téma podporovalo konfiguraci vzhledu v pozadí prostřednictvím menu, je nutné registrovat pozice navigačních položek. Stejně tak…functions.phpPoužijte to v čínštině.register_nav_menus()Funkce:

function my_first_theme_setup() {
    register_nav_menus(
        array(
            'menu-1' => esc_html__( '主导航', 'my-first-theme' ),
            'footer' => esc_html__( '页脚导航', 'my-first-theme' ),
        )
    );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

Po registraci můžete použít šablonové soubory (napříkladheader.phpPoužívá se v…)wp_nav_menu()Funkce pro zobrazení menu.

Oblast pro widgety, která je nyní také nazývána “boční lišta”, slouží k použití…register_sidebar()Registrování funkcí. Po registraci mohou uživatelé v zázemní části systému (“Nástroje”) přetahovat komponenty do těchto oblastí. Ve svých šablonách pak tyto komponenty použijete k vytvoření požadovaného vzhledu.dynamic_sidebar()Funkce je volají.

Implementace pokročilých tematických funkcí a osvědčených postupů

Jakmile budou základní funkce dokončeny, lze flexibilitu a profesionalitu témat zvýšit pomocí výkonného systému hooků (Hooks) a funkcí pro vlastní nastavení v WordPressu.

Využijte přizpůsobovače temat k zvýšení kontroly.

WordPress Customizer umožňuje uživatelům v reálném čase předvídat a upravovat nastavení témat. Můžete tedy…wp_customize K tématu API by měly být přidány možnosti nastavení, jako je logo webové stránky, barevná škála, výběr rozložení stránky atd.

Níže je jednoduchý příklad nastavení “textu o autorských právech v podobě patra” pro dané téma:

function my_first_theme_customize_register( $wp_customize ) {
    // 添加一个设置项
    $wp_customize->add_setting( 'footer_copyright_text',
        array(
            'default'           => '© 2026 我的网站。保留所有权利。',
            'transport'         => 'refresh', // 或 ‘postMessage’ 用于实时预览
            'sanitize_callback' => 'wp_kses_post', // 清理输入
        )
    );

// 添加一个控件来控制这个设置
    $wp_customize->add_control( 'footer_copyright_text',
        array(
            'label'       => __( '页脚版权文本', 'my-first-theme' ),
            'section'     => 'title_tagline', // 放在“站点身份”区域
            'type'        => 'textarea',
        )
    );
}
add_action( 'customize_register', 'my_first_theme_customize_register' );

footer.phpV čínštině se používáget_theme_mod( 'footer_copyright_text' )Vyveďte tuto hodnotu.

Dodržujte zásady bezpečnosti a výkonnosti.

Bezpečnost je nejdůležitějším aspektem při vývoji webových stránek. Veškerá data, která jsou dynamicky generována, musí být označena speciálními značkami („escaped“), a veškerý vstup od uživatelů musí být očištěn („sanitized“). WordPress nabízí řadu funkcí, které vám pomohou s tímto procesem.esc_html()esc_attr()esc_url()Používá se k výstupu escape znaků.sanitize_text_field()sanitize_email()Slouží k vstupnímu úpravování dat.

Z hlediska výkonu je důležité zajistit, aby kód tematických stránek byl stručný a efektivní, rozumně využíval vyčerpávání dat (caching) a optimalizoval front-end zdroje (např. kompresí obrázků, sloučením souborů CSS/JS, použitím technik „lazy loading“ atd.).get_template_part()Využívejte opakované použití kódu a vyhněte se psaní složité obchodní logiky do šablonových souborů. Přesuňte tuto logiku do jiných částí kódu, kde bude lépe spravovatelná.functions.phpNebo v speciálních funkčních souborech.

Závěr

Vývoj tem pro WordPress je proces, který kombinuje technologie webového frontendu (HTML, CSS, JavaScript) s logikou backendu v jazyce PHP. Začínáme pochopením…style.cssOd úrovně šablon až po vytvoření jádra…header.phpfooter.phpindex.phpA poté přes…functions.phpSprávné přidávání funkcí, stylů a skriptů, při dodržování všech pravidel a osvědčených postupů WordPressu, je zásadním krokem při vývoji kvalitních, udržovatelných a uživatelsky přívětivých profesionálních témat. Dobré znalosti nástrojů pro personalizaci témat a systému hooků, spolu s neustálým pamatováním na zásady bezpečnosti a výkonnosti, jsou klíčové pro úspěšný vývoj takových témat. Díky průběžné praxi a zkoumání se budete moci postupně posouvat od vytváření základních témat k vývoji pokročilých produktů, které splňují složitější požadavky uživatelů.

Časté dotazy

Které soubory musí obsahovat nejzákladnější WordPress téma?

Nejzákladnější téma, které je rozpoznatelné systémem WordPress, musí obsahovat dvě soubory:style.cssindex.phpstyle.cssVrchní část musí obsahovat správně formátovaný blok poznámek s hlavičkou tématu, kde “Theme Name:” je povinný položek.index.phpJedná se o finální zpětný přepínač („fallback template“) pro všechny stránky.

Proč je nutné volat funkce `wp_head()` a `wp_footer()` v souborech `header.php` a `footer.php`?

wp_head()wp_footer()Jedná se o akční háčky (Action Hooks), které poskytuje samotné jádro WordPressu. Jejich použití umožňuje WordPressu, pluginům a kódu jiných temat vložit potřebný kód (např. klíčový CSS, JavaScript, metatagy atd.) do určitých částí stránky – a to před jejím zobrazením. Pokud jsou tyto háčky vynechány, může dojít k nefunkčnosti pluginů, k nezobrazení správného panelu nebo k chybám při načítání stylových skriptů.

Jak zajistit, aby mé téma podporovalo vícejazyčné překlady?

Nejprve,style.cssSprávně nastavit informace v hlavičce (header)Text Domain(Například: „my-theme“) a poté…functions.phpPoužijte to v čínštině.load_theme_textdomain()Funkce nastavuje cestu k souboru s překladovými daty. Dále je ve všech textových řetězcích tématu použita funkce pro překlad v WordPressu – například…esc_html_e( 'Hello World', 'my-theme' )printf( __( 'Welcome to %s', 'my-theme' ), get_bloginfo('name') )Nakonec vytvořte šablonový soubor typu .pot pomocí nástroje, jako je Poedit, a poté přeložte obsah tohoto souboru do odpovídajícího jazykového souboru typu .mo.

Co jsou výhody vývoje dceřiného tématu (Child Theme)?

Vytváření podtémát je osvědčenou praxí při úpravě a rozšíření funkcí stávajících hlavních témat. Mezi jejich hlavní výhody patří: bezpečné aktualizace hlavního tématu bez ztráty vlastních úprav; potřeba přepsat pouze ty soubory hlavního tématu, které je třeba změnit, což výrazně snižuje objem kódu; a možnost použití jako výchozího bodu pro učení a návrh prototypů. Při vytváření podtémátu stačí vytvořit nový adresář, který obsahuje soubor s správnými informačními značkami (včetně pole “Template: parent-theme-folder-name”).style.css…a také jedno.functions.phpSoubor můžete okamžitě použít k přizpůsobení.