Zvládněte základy vývoje temát pro WordPress: Průvodce nejlepšími postupy při vytváření vlastních temát od nuly

Čtení za 2 minuty.
2026-03-12
2026-06-04
1,940
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.

Základní architektura témat WordPressu a klíčové soubory

Standardní WordPress téma není pouze souborem několika šablon stránek – jedná se o adresář, který dodržuje určitou strukturu a pravidla. Porozumění této architektuře je prvním krokem při vývoji. Každé téma se nachází…/wp-content/themes/Umístěte soubory do daného adresáře a pojmenujte je jedinečným názvem složky.

Podstatou tématu je…style.cssSoubor není pouze šablonou stylů, ale také “občanským průkazem” tématu. Blok komentářů na začátku souboru obsahuje metadata tématu, které se zobrazí na stránce správy témat v pozadí WordPressu. Níže je uveden příklad základních informací z hlavičky šablony stylů:

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 开发者名称
Author URI: https://example.com
Description: 这是一个从零开始构建的自定义主题描述。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

Dalším zcela nezbytným souborem jeindex.phpJedná se o výchozí šablonu pro dané téma. Když WordPress nenajde konkrétnější šablonový soubor (např.single.phppage.phpPoužije se v případě, že je potřeba určitý soubor pro nastavení vzhledu stránek. I když je tento soubor prázdný, téma lze stále identifikovat, je však doporučená praxe zajistit, aby obsahoval kompletní HTML strukturu a šablony WordPressu potřebné k zobrazení obsahu.

Doporučujeme k přečtení. Úvod do vývoje WordPress temat: Vytvoření vlastní temat od nuly

Kromě těchto dvou souborů…functions.phpJde o “mozek” daného tématu. Není to soubor šablony, ale PHP soubor, který se automaticky načte při inicializaci tématu. Slouží k přidávání funkcí tématu, registraci menu a bočních panelů, stejně jako k načítání skriptů a stylů. Zde můžete provádět potřebné úpravy.add_action()add_filter()Čekáme na „hooky“ (speciální funkce), které umožní rozšířit funkce tohoto tématu.

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.

Úroveň šablon a šablonské soubory

WordPress využívá sofistikovaný systém úrovní šablon, který určuje, jak se různé typy obsahu zobrazují. Tento systém je ústřední součástí vývoje temát a umožňuje vývojářům přesně ovládat vzhled každé části webové stránky vytvářením specifických šablonových souborů.

Například při návštěvě blogového článku hledá WordPress soubory šablon v následujícím pořadí:single-post.php -> single.php -> singular.php -> index.phpPoužije první nalezený soubor šablony. Tato hierarchická struktura poskytuje vývojářům velkou flexibilitu, neboť umožňuje vytvářet vlastní šablony pro články různých kategorií, tagů nebo dokonce pro konkrétní ID.

Content Display Template

Jedním z nejčastěji používaných šablon je…single.phpSlouží k renderování jednotlivých článků nebo vlastních typů článků (pokud takové neexistují).single-{post-type}.phpJeho jádrem je použití cyklu (The Loop) k výstupu obsahu článku.page.phpJsou určeny výhradně k zobrazování statických stránek. Stránkové šablony obvykle neobsahují metadaty, jako jsou kategorie nebo tagy, a zaměřují se pouze na zobrazení obsahu stránky.

Seznam článků a stránka s archivem

archive.phpSlouží k zobrazení kategorií, tagů, autorů, dat a dalších informací na stránkách archivů.home.phpindex.phpObvykle slouží jako stránka se seznamem blogových článků (tj. jako “hlavní stránka”, kterou jste nastavili). Pro dosažení přesnější kontroly můžete vytvořit…category.phptag.phpauthor.phpČekajte na konkrétní šablony archivace.

Doporučujeme k přečtení. Průvodce vývojem WordPress temat: Vytvoření vlastního tématu od nuly

Speciální šablony stránek

front-page.phpMá vyšší prioritu než…home.phpPoužijete ho, když chcete vytvořit úplně vlastní domovskou stránku webového stránku, která se liší od interního seznamu blogů.404.phpSlouží k zpracování situací, kdy stránka nebyla nalezena.search.phpSlouží k zobrazení výsledků vyhledávání.searchform.phpJedná se o šablonu vyhledávacího formuláře, která lze opakovaně používat.

Funkce temat a mechanismus hooků

functions.phpSoubor je centrem řízení funkcí tématu. Zde můžete pomocí výkonného systému hooků v WordPressu upravovat nebo přidávat funkce, aniž byste museli přímo měnit základní soubory. Hooky se dělí především na dvě kategorie: akce (Actions) a filtry (Filters).

inicializace tématu a podpora funkcí

Při vývoji témat je nejprve nutné použít…add_theme_support()Funkce slouží k deklaraci funkcí, které daný systém pro dané téma podporuje. Například povolení zobrazení přehledů článků („oblíbených obrázků“), použití vlastního loga, formátování článků atd. To se obvykle provádí při připojení systému („mountování“) k danému serveru nebo platformě.after_setup_themeDokončeno ve funkci akčního háčku.

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.
function mytheme_setup() {
    // 添加文章缩略图支持
    add_theme_support( 'post-thumbnails' );
    // 添加自定义Logo支持
    add_theme_support( 'custom-logo' );
    // 注册导航菜单
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-custom-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

Správa zavádění zdrojových souborů

Správné načtení souborů CSS a JavaScript je klíčem k zajištění výkonnosti a bezpečnosti tématu. Je nutné použít…wp_enqueue_style()wp_enqueue_script()Funkce a pomocí níwp_enqueue_scriptsAkční háčky slouží k načítání potřebných souborů. To umožňuje systému WordPress spravovat závislosti mezi jednotlivými moduly, řídit procesy verzování a zabraňuje duplicitnímu načítání souborů.

function mytheme_scripts() {
    // 引入主题主样式表
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() );
    // 引入自定义JavaScript文件
    wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );

Boční panel a oblast nástrojů

Oblast nástrojů (Sidebar) je důležitou součástí tématu. Potřebujete ji použít…register_sidebar()Funkce slouží k registraci jednoho nebo více panelů pro přidávání doplňkových funkcí („plug-inů“), které poté mohou být použity v šablonách (např.…)sidebar.phpPoužívá se v…)dynamic_sidebar()Použijte to k jeho spuštění. Tím je uživatelům umožněno prostřednictvím backendu přetahovat a nastavovat vlastní rozložení stránek.

Šablony a cykly

Šablónové značky jsou vestavěné PHP funkce v WordPressu, které slouží k dynamickému získávání a zobrazování dat v šablonových souborech. “The Loop” je základní PHP struktura v WordPressu určená k zpracování a zobrazení série článků (nebo výsledků dotazu).

Doporučujeme k přečtení. Vývoj tem pro WordPress: Průvodce celým procesem od základů až po pokročilé znalosti – Jak vytvořit personalizované webové stránky

Porozumění a vytvoření cyklů

Základní struktura cyklu je následující: zkontrolujete, zda existují články, a poté…whilePříkaz prochází každý článek. Uvnitř cyklu můžete používat různé šablony a značky k výstupu obsahu článku, nadpisu, data zveřejnění a dalších informací.

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <article>
        <h2><p><strong> Řekněte mi něco o sobě.</strong></p></h2>
        <div class="entry-meta">Zveřejněno:</div>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
    </article>
<?php endwhile; endif; ?>

Tagy pro výstup běžně používaného obsahu

the_title()Slouží k výstupu nadpisů článků.the_content()Slouží k výstupu hlavního obsahu článku (automaticky aplikuje formátování jako jsou odstavce atd.).the_excerpt()Poté se zobrazí shrnutí článku.the_permalink()Získávání odkazů na články se často používá spolu s jejich názvy.the_post_thumbnail()Slouží k výstupu speciálních obrázků.

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.

Použití podmínkových značek

Podmínkové značky (jako např.)is_home()is_single()is_page()is_category()Jsou to velmi silné nástroje, které vám umožňují spouštět různý kód v závislosti na typu stránky, která se právě zobrazuje. Například můžete…header.phpPoužijte to v čínštině.is_front_page()Nastavme pro úvodní stránku jiný název.

Závěr

Vývoj WordPress tématu od nuly je systématický proces, který vyžaduje, aby vývojář dobře porozuměl jeho základní architektuře, struktuře šablon, mechanismům hooků a procesům zpracování dat. Začínáme vytvořením těch nejzákladnějších prvků…style.cssindex.phpNa začátku souboru se postupně vytvářejí různé typy stránkových šablon, které odpovídají pravidlům hierarchie šablon.functions.phpFunkce a podpora jsou do systému stabilně přidávány pomocí „hooků“. Znalost použití šablonovacích značek a cyklů je klíčová pro dynamické zobrazování obsahu. Dodržování těchto osvědčených postupů nejenom umožňuje vytvářet efektivní a udržovatelné vlastní tematiky, ale také zajišťuje jejich dokonalou kompatibilitu s ekosystémem WordPress, což poskytuje solidní základ pro budoucí rozšíření a aktualizace.

Časté dotazy

K vývoji temat pro WordPress je nutné ovládat následující techniky:

Pro vývoj tem pro WordPress je nutné ovládat tři základní webové technologie: HTML, CSS a PHP. HTML slouží k vytvoření strukturního uspořádání stránek, CSS se stará o styly a design rozložení, zatímco PHP je programovací jazyk, který umožňuje dynamické funkce WordPressu, přístup k datům a zpracování logiky. Kromě toho je užitečné mít základní znalosti JavaScriptu, které pomohou přidat interaktivní prvky do stránek.

Jak přidat podporu pro vlastní typy článků ke svému tématu?

V rámci tohoto tématu…functions.phpVe souboru se používá…register_post_type()Funkce slouží k registraci vlastního typu článku. Pro tuto funkci je potřeba poskytnout jedinečný identifikátor typu článku (např. “portfolio”) a pole obsahující podrobné parametry, jako jsou tagy, úroveň přístupnosti, ikony pro menu atd. Doporučuje se tento kód zabalit do nějaké struktury, která bude následně připojena („mountována“) do systému.initVe funkci akčního háčku.

Proč se změny mého tématu nezobrazují nebo neaktualizují v pozadí?

Obvykle je to způsobeno mezipamětí prohlížeče nebo serveru. Nejprve zkuste nuceně obnovit obsah stránky (stiskněte Ctrl+F5). Pokud problém přetrvává, zkontrolujte, zda používáte nějaké doplňky, které využívají mezipaměť, a zkuste je vyprázdnit. Také se ujistěte, že upravujete správný soubor s nastaveními tématu (tema), který je aktuálně aktivní, a prověřte obsah tohoto souboru.style.cssVerzní číslo v hlavičce souboru – aktualizací tohoto čísla lze donutit prohlížeč načíst nové styly.

Jaký je rozdíl mezi podtématem a nadtématem a kdy je vhodné je použít?

Příspěvek „Přímočarý“ je kompletní a nezávislý funkční příspěvek. Podpříspěvky („podpříspěvky“) dědí všechny funkce, styly a šablony příspěvku „Přímočarý“ a umožňují vám bezpečně přepsat konkrétní části tohoto příspěvku.style.cssPři pokusu o úpravu stávajícího tématu (zejména třetí strany) a při zárovejném přání, abyste v budoucnu mohli toto téma bez problémů inovovat, je vhodné vytvořit podtémata určená k dalšímu vývoji.

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

Potřebujete využít framework pro internacionalizaci (i18n) v WordPressu.functions.phpV čínštině se používáload_theme_textdomain()Funkce nastavuje cestu k textovému poli a jazykovým souborům. Ve všech PHP šablonách tématu musí být všechny řetězce, které je třeba přeložit, označeny speciálními značkami.__()_e()Tyto funkce je potřeba zabalit do vhodných struktur (např. pomocí šablon). Nakonec použijte nástroje jako Poedit k vytvoření souboru typu `.pot`, který obsahuje požadované texty. Tyto texty poté přeložte do různých jazyků pomocí nástrojů určených k překladu souborů typu `.po` a `.mo`.