Vývoj tem pro WordPress: Kompletní průvodce vytvářením profesionálních webových tem od nuly

Čtení za 3 minuty.
2026-03-18
2026-06-04
2,253
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.

Vývojové prostředí a základní struktura souborů

Než začnete vytvářet profesionální téma pro WordPress, je zásadním prvním krokem vytvoření jasného a efektivního vývojového prostředí. To nejenže zajišťuje čistotu a udržovatelnost kódu, ale také splňuje oficiální vývojové standardy WordPressu.

Typické prostředí pro vývoj temát pro WordPress zahrnuje lokální server (např. XAMPP, MAMP nebo Local by Flywheel), editory kódu (např. VS Code, PhpStorm) a nástroje určené k ladění a správě verzí kódu. Klíčovým aspektem je pochopení struktury adresářů tematu. Kořenový adresář standardního tematu obsahuje alespoň následující soubory:style.cssindex.phpfunctions.php

Core Style Sheet File

style.cssSoubor není pouze souborem s nastaveními vzhledu tématu, ale také “občanským průkazem” tohoto tématu. Jeho blok poznámek v hlavičce souboru obsahuje všechny metadaty tématu, které se zobrazí na stránce “Vzhled -> Témata” v administraci WordPressu. Níže je uveden příklad základních poznámek v hlavičce souboru:

Doporučujeme k přečtení. Populární úvodní průvodce pro rok 2026: Jak vytvořit svůj první WordPress téma od nuly

/*
Theme Name: 我的专业主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个用于演示的专业级WordPress主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-professional-theme
*/

Mezi nimi,Text DomainSlouží k internacionalizaci a je klíčový pro následné volání funkcí pro překlad.

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.

Thematic Feature File

functions.phpJedná se o “mozek” tématu – část, která slouží k přidávání funkcí daného tématu, registračního menu, bočního panelu, stejně jako k načítání skriptů a stylů. Nejedná se o plugin, ale o nezbytnou součást samotného tématu. Pomocí tohoto souboru mohou vývojáři volat různé akce a filtrovací háčky WordPressu, aby rozšířili možnosti daného tématu.

Základní šablonový soubor

index.phpJedná se o výchozí šablonový soubor daného tématu a zároveň o poslední možnost návratu v hierarchii šablon. Když WordPress nenajde konkrétnější šablonový soubor (např.single.phppage.phpPři použití tohoto nástroje se postupuje následovně:index.phpPro renderování stránky je dobrou praxí od začátku naplánovat strukturu šablon (tj. jejich hierarchii).

Hlavní šablonový soubor a hierarchie šablon

WordPress využívá systém hierarchie šablon k určení toho, který šablonový soubor se má použít pro konkrétní typ stránky. Porozumění této hierarchii je klíčové pro vytvoření flexibilních témat. Systém začne hledat od nejkonkrétnější šablony a pokračuje dále, dokud nenajde odpovídající soubor; v opačném případě se použije výchozí šablona.index.php

Články a šablony stránek

Pro jednotlivé články bude WordPress postupně hledat…single-post-{slug}.phpsingle-post-{id}.phpsingle.phpA nakonec je…singular.phpPro jednostránkové stránky hledejte…page-{slug}.phppage-{id}.phppage.phpA pak je tusingular.phpMůžete vytvořit.single.phpPro ovládání zobrazení všech článků, nebo pro jejich vytvoření…page-about.phpChcete si stránku “O nás” přizpůsobit podle svých požadavků.

Doporučujeme k přečtení. Od nuly k mistrovství: Kompletní průvodce vývojem WordPress temat a praktické tutoriály

Šablony pro archivaci a klasifikaci

Pro stránky se seznamem článků, např. kategorické archivy, hledá WordPress…category-{slug}.phpcategory-{id}.phpcategory.phparchive.phpA nakonec je…index.phpPodobně i pro štítky, autory a datové archivy existuje určitý pořadí, podle kterého se hledají odpovídající šablony. Je třeba vytvořit univerzální (obecně použitelné) řešení pro tento proces.archive.phpLze jednotně ovládat vzhled (layout) všech archivních stránek.

Šablony domovské stránky a stránek s články

Hlavní stránka webu může být seznamem článků (index blogu) nebo statickou stránkou. V případě prvního varianty používá WordPress…home.phpPokud jde o druhý případ, použije se šablona určená pro zvolenou statickou stránku.front-page.phpPokud oba tyto soubory neexistují, pak se vrátí se na předchozí verzi.index.phpObvykle se pro odborná témata vytvářejí samostatné…front-page.phpNavrhněme obsahově bohatou domovskou stránku.

Integrace tematických funkcí s WordPress API

Profesionální téma není pouze náhledovým šablonou – vyžaduje také integraci základních funkcí pomocí bohaté API WordPressu, aby byl web snadno spravovatelný a vybavený všemi potřebnými funkcemi.

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.

Registrovat navigační menu

projít (účtem, kontrolou atd.)functions.phpNěco v čínštině (zjednodušené)register_nav_menus()Funkce umožňuje definovat více umístění pro jednotlivé položky v rámci tématu. Například:

function mytheme_setup() {
    register_nav_menus(
        array(
            'primary' => esc_html__( '主导航菜单', 'my-professional-theme' ),
            'footer'  => esc_html__( '页脚菜单', 'my-professional-theme' ),
        )
    );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

Poté použijte to v souboru šablony.wp_nav_menu()Funkce a určenítheme_locationParametry slouží k zobrazení menu.

Přidání funkce podpory temat

Použitíadd_theme_support()Funkce mohou deklarovat různé funkce podporované daným tématem, jako jsou ukázky článků (výrazné obrázky), vlastní loga, podpora HTML5 značek atd. To se obvykle děje…after_setup_themeDokončeno v „hooku“.

Doporučujeme k přečtení. Výstavba webových stránek od základů po pokročilé znalosti: Kompletní průvodce vytvářením vysokokvalitních webových stránek

add_action( 'after_setup_theme', 'mytheme_theme_support' );
function mytheme_theme_support() {
    // 支持文章特色图像
    add_theme_support( 'post-thumbnails' );
    // 支持自定义Logo
    add_theme_support(
        'custom-logo',
        array(
            'height'      => 100,
            'width'       => 400,
            'flex-height' => true,
        )
    );
    // 支持HTML5标记
    add_theme_support(
        'html5',
        array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' )
    );
}

Registrační nástrojová oblast

Boční lišta nebo oblast s dalšími nástroji je přístupná prostřednictvím…register_sidebar()Registrování funkcí. Můžete definovat více oblastí pro příslušenství (“widgetů”), které umožňují uživatelům dynamicky přidávat obsah prostřednictvím rozhraní „Vzhled -> Příslušenství“ v administraci.

add_action( 'widgets_init', 'mytheme_widgets_init' );
function mytheme_widgets_init() {
    register_sidebar(
        array(
            'name'          => esc_html__( '主侧边栏', 'my-professional-theme' ),
            'id'            => 'sidebar-1',
            'description'   => esc_html__( '在此添加小工具。', 'my-professional-theme' ),
            'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
            'after_widget'  =&gt; '</section>',
            'before_title'  =&gt; '<h2 class="widget-title">',
            'after_title'   =&gt; '</h2>',
        )
    );
}

V šabloně použijte In the template, usedynamic_sidebar( 'sidebar-1' )Pojďte to spustit.

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.

Skripty, styly a optimalizace výkonu

Moderní webové stránky vyžadují správné zpracování načítání souborů CSS a JavaScript, stejně jako zohlednění možností optimalizace výkonu. Cílem je zajistit rychlé načítání stránek a kompatibilitu s různými doplňky (pluginy).

Bezpečné načítání zdrojových souborů

Nikdy nepoužívejte přímé hardlinky na soubory CSS nebo JS přímo v šablonových souborech. Měli byste je místo toho přidávat pomocí vhodných metod.wp_enqueue_style()wp_enqueue_script()Funkce a pomocí níwp_enqueue_scriptsZávislosti se načítají pomocí „hooků“. Toto zajišťuje správné řízení těchto závislostí, předchází konfliktům a umožňuje upravovat pluginy a další tematické prvky („themes“).

add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );
function mytheme_scripts() {
    // 引入主题主样式表
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri(), array(), wp_get_theme()->get( 'Version' ) );
    // 引入自定义JavaScript文件
    wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), wp_get_theme()->get( 'Version' ), true );
    // 为脚本本地化数据(如果需要传递PHP变量到JS)
    wp_localize_script( 'mytheme-navigation', 'mythemeScreenReaderText', array(
        'expand'   => __( '展开子菜单', 'my-professional-theme' ),
        'collapse' => __( '收起子菜单', 'my-professional-theme' ),
    ) );
}

Podmíněné načítání a správa závislostí

Pro skripty, které jsou potřebné pouze na straně uživatele („frontend“) nebo pouze na straně serveru („backend“), lze použít podmínkové řízení. Například skript pro odpovědi na komentáře by měl být načten pouze na stránce konkrétního článku a pouze tehdy, je-li funkce komentářů aktivní:

if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    wp_enqueue_script( 'comment-reply' );
}

Při registraci skriptů je velmi důležité správně deklarovat závislosti (např. na jQuery).

Praktiky optimalizace výkonu

Optimalizace výkonnosti témat zahrnuje například použití vhodných technik a nástrojů.add_image_size()Generujte vhodné rozměry obrázků, aby se předešlo jejich zmenšování na straně klienta (frontendu); použijte to také pro skripty určené k řízení front.asyncdeferAtributy; zvažte vložení klíčového CSS kódu do samotného kódu stránky; a ujistěte se, že všechny zdroje jsou optimalizovány (minimalizovány). V rozvojových standardech pro rok 2026 se zohlednění parametrů Core Web Vitals stalo základním požadavkem při vývoji webových stránek.

Závěr

Vývoj profesionálního WordPress tématu od nuly je systematický proces, který vyžaduje, aby vývojáři ovládali nejen PHP, HTML, CSS a JavaScript, ale také měli hluboké pochopení základní architektury a filozofie WordPressu. Začátek spočívá v vytvoření standardní struktury souborů a dodržování pravidel hierarchie šablon při organizaci těchto souborů – to je základ pro vytvoření flexibilního tématu.functions.phpIntegrované funkce témat, jako jsou menu, příslušenství a podpora různých témat, činí tyto funkce kompletními a snadno spravovatelnými pro uživatele. Skripty a styly byly zavedeny s důrazem na výkon a bezpečnost na straně klienta, což zajišťuje rychlý, stabilní a bezpečný chod webové stránky. Dodržováním těchto osvědčených postupů budete schopni vytvořit WordPress téma s jasnou strukturou, bohatými funkcemi, vynikajícím výkonem a snadnou údržbou.

Časté dotazy

Jaké programovací jazyky je nutné ovládat pro vývoj WordPressových šablon?

Klíčovým požadavkem pro vývoj temát pro WordPress je znalost PHP, protože samotný WordPress je napsán v PHP a všechny šablony a funkční logika závisí na PHP. Zároveň je nutné ovládat HTML a CSS pro vytváření struktur a stylů stránek. Pro interaktivní funkce je také nezbytný JavaScript (zejména znalost jQuery, protože je součástí základního kódu WordPressu). Pochopení základů SQL pomůže při porozumění dotazům do databáze WordPressu.

Jaký je rozdíl mezi souborem functions.php v hlavní složce projektu a pluginy?

functions.phpJe součástí tématu a jeho funkce je úzce propojena s samotným tématem. Když uživatel změní téma,functions.phpKód uvedený v textu již nebude fungovat. Pluginy jsou nezávislé funkční moduly, které mají za cíl poskytovat všeobecné funkce platné pro různá témata. Dobrým principem je umisťovat funkce, které jsou úzce spojeny s vizuálním vzhledem a uspořádáním konkrétního tématu, přímo do tohoto tématu.functions.phpFunkce, které jsou univerzální a nezávislé (např. kontaktní formuláře, optimalizace pro vyhledávače – SEO), by měly být vytvořeny jako pluginy.

Jak zajistit, aby můj web nebo aplikace podporovaly více jazyků ( internacionalizaci)?

Podpora více jazyků v tématu se hlavně dosahuje prostřednictvím “ internacionalizace (i18n)” a “ lokalizace (l10n)”. V kódu by měly být všechny textové stránky určené pro uživatele zabaleny do funkcí pro překlad poskytovaných WordPressem.__('文本', 'text-domain')_e('文本', 'text-domain')Zde…text-domainMusí být v souladu s…style.cssDefinované v Číně.Text DomainÚplně shodné. Poté použijte nástroj, jako je Poedit, k vytvoření toho požadovaného obsahu..potŠablony souborů – překladatelé mohou vytvořit verze těchto šablon v požadovaných jazycích (např.zh_CN.po…) Translation file. Finally,functions.phpProstřednictvím Čínyload_theme_textdomain()Překlad textu „Funkce načítání“: „Function loading“.

Během vývoje, jak ladit možné chyby v PHP?

Nejprve se ujistěte, že ve vašem lokálním vývojovém prostředí…wp-config.phpV souboru je zapnut režim ladění.WP_DEBUGKonstanta je nastavena natruedefine( 'WP_DEBUG', true );Můžete také aktivovat obojí najednou.WP_DEBUG_LOGZaznamenejte chyby do souboru protokolů, a také…WP_DEBUG_DISPLAYSlouží k ovládání zobrazení chyb na stránce. Kromě toho může být velmi užitečné používat nástroje pro vývojáře webových stránek k prohlížení konzole a síťových požadavků, stejně jako nainstalovat ladící doplňky, jako je např. Query Monitor. Tyto nástroje významně usnadňují lokalizaci problémů s výkonem a s dotazy do databáze.