Kompletní průvodce vývojem temát pro WordPress: Vytvoření vlastního temátu pro WordPress od nuly

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

Přípravné práce a nastavení prostředí.

Než začnete psát první řádek kódu, správné vývojové prostředí je základem pro efektivní práci. Strukturované a plně funkční lokální prostředí vám umožní se soustředit na logiku vašeho projektu, nikoli na problémy s konfigurací prostředí.

Výběr a konfigurace lokálního vývojového prostředí

Doporučujeme použít lokální serverové balíčky, které integrují Apache/Nginx, PHP a MySQL, např. Local by Flywheel, XAMPP nebo MAMP. Tyto nástroje umožňují jednoduchým postupem vytvořit PHP prostředí vhodné pro provoz WordPressu. Ujistěte se, že verze PHP je 7.4 nebo vyšší a verze MySQL je 5.6 nebo vyšší, aby byla zajištěna kompatibilita s nejnovějšími funkcemi jádra WordPressu.

Vytvoření základní struktury souborů tematického projektu

Nejjednodušší WordPress téma vyžaduje alespoň dva soubory:style.cssindex.phpAle pro přehlednost a udržovatelnost doporučujeme od začátku vytvořit standardní strukturu adresářů. V adresáři vaší instalace WordPressu… wp-content/themes/ V té složce vytvořte novou složku, například… my-custom-themeV této složce nejprve vytvořte následující základní soubory:
- style.cssTématický stylový soubor je také “občanským průkazem” tématu a obsahuje informace o tomto tématu.
- index.phpHlavní šablona tématu, která určuje výchozí zobrazení stránek.
- functions.phpFunkční soubory témat slouží k přidávání nových funkcí, registraci položek do menu, nastavování obsahu bočních panelů a dalším účelům.
- header.phpŠablona pro hlavičku webové stránky.
- footer.phpŠablona pro spodní část webové stránky.

Doporučujeme k přečtení. Vývoj tem pro WordPress: Kompletní průvodce vytvářením profesionálních webových tem od nuly

Vytvoření základních souborů a struktur šablon pro téma

WordPress využívá systém hierarchie šablon k určení toho, který soubor šablony má být načten pro různé typy požadavků. Porozumění tomuto systému a správné vytváření těchto souborů je základem při vývoji temat (tém).

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.

Definování tematických informací a zavádění zdrojů

style.css Na začátku souboru musí být obsažena formátovaná poznámka, která slouží k informování WordPressu o vašem tématu. To je podmínkou pro jeho aktivaci.

/*
Theme Name: My Custom Theme
Theme URI: https://example.com/my-custom-theme
Author: Your Name
Author URI: https://example.com
Description: 一个从零开始构建的自定义 WordPress 主题。
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: my-custom-theme
*/

Následně budete potřebovat… functions.php Ve souboru, prostřednictvím… wp_enqueue_style()wp_enqueue_script() Funkce správně načítá soubory CSS a JavaScript. Jedná se o způsob doporučený WordPressem, který umožňuje spravovat závislosti mezi jednotlivými prvky webové stránky a předchází konfliktům mezi různými zdroji obsahu (resurzy).

<?php
function my_theme_scripts() {
    // 引入主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
    // 引入自定义 JavaScript 文件
    wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/main.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );
?>

Rozdělit šablonu pro horní a dolní část stránky

Oddělte veškerý kód tvořící společnou hlavičku a patu webové stránky do samostatných souborů. header.phpfooter.php V tomto případě je klíčovým faktorem dodržování principu DRY (Don’t Repeat Yourself) v kódu. header.php V tomto textu je potřeba zahrnout některé informace, které nebyly uvedeny. Prosím, doplňte tyto chybějící části, abych mohl poskytnout správný překlad. wp_head() Hooky funkce umožňují jádru WordPressu, pluginům a dalším skriptům vložit potřebný kód do hlavičky stránky (např. SEO metatagy).footer.php Mělo by to obsahovat… wp_footer() Hák.

Poté použijte to v jiných šablonových souborech. get_header()get_footer() Funkce slouží k jejich volání.

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress pluginů: Od základů po dokonalé vytváření vlastních funkcí

// 在 index.php 中的典型结构
<?php get_header(); ?>

<main>
    <!-- 主循环内容 -->
</main>

<?php get_sidebar(); ?> <!-- 如果需要侧边栏 -->
<?php get_footer(); ?>

Porozumět a implementovat hlavní cyklus

Hlavní cyklus (The Loop) je mechanismus, který používá WordPress k načítání a zobrazování článků z databáze. Obvykle se vyskytuje… index.phpsingle.phppage.php V šablonách jako…

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <article id="post-<?php the_ID(); ?>">
        <h2><a href="/cs/</?php the_permalink(); ?>"><p><strong> Řekněte mi něco o sobě.</strong></p></a></h2>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
    </article>
<?php endwhile; else : ?>
    <p><?php esc_html_e( 'Sorry, no posts matched your criteria.', 'my-custom-theme' ); ?></p>
<?php endif; ?>

Tento kód používá… have_posts()the_post() Funkce prochází všechny články, které splňují určité kritéria, a používá při tom šablony a značky (tagy). the_title()the_content() Vytvořte obsah.

Přidání funkce tematického řazení a možností personalizace

Zralé téma potřebuje nejen zobrazovat obsah, ale také poskytovat některé konfigurovatelné funkce, které umožní uživatelům upravit vzhled webové stránky bez nutnosti měnit kód.

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.

Registrování navigačního menu a bočního panelu

functions.php Použijte to v čínštině. register_nav_menus() Funkce slouží k deklaraci jednoho nebo více umístění navigačních položek, která jsou podporována daným tématem.

function my_theme_setup() {
    register_nav_menus( array(
        'primary' => __( 'Primary Menu', 'my-custom-theme' ),
        'footer'  => __( 'Footer Menu', 'my-custom-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' );

Po registraci mohou uživatelé tyto menu spravovat v administraci v sekci “Vzhled” -> “Menu”. V šablonách (např.) header.php(...) a použijte wp_nav_menu() Funkce pro zobrazení menu.

Stejně tak, použití register_sidebar() Funkce umožňují vytvořit dynamické oblasti pro příslušenství (boční panely).

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

Podpora integrace s nástrojem na vytváření personalizovaných témat

WordPress Customizer poskytuje reálný časový přehled (real-time preview) rozhraní, které umožňuje uživatelům upravovat nastavení témat. Můžete tak… wp_customize API umožňuje přidávat různé možnosti k vašemu tématu, jako je např. logo webové stránky, barevná schéma a další vlastnosti.

function my_theme_customize_register( $wp_customize ) {
    // 添加一个“颜色”板块
    $wp_customize->add_section( 'my_theme_colors', array(
        'title' => __( 'Colors', 'my-custom-theme' ),
        'priority' => 30,
    ) );
    // 在板块内添加一个“主色调”设置
    $wp_customize->add_setting( 'primary_color', array(
        'default' => '#0073aa',
        'sanitize_callback' => 'sanitize_hex_color',
    ) );
    // 为该设置添加一个颜色选择器控件
    $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'primary_color', array(
        'label' => __( 'Primary Color', 'my-custom-theme' ),
        'section' => 'my_theme_colors',
        'settings' => 'primary_color',
    ) ) );
}
add_action( 'customize_register', 'my_theme_customize_register' );

Poté můžete to využít na straně klienta (na frontendu). get_theme_mod( 'primary_color' ) Získat hodnoty nastavené uživatelem a vložit je do CSS kódu.

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.

Optimalizace tématu a příprava k publikování

Po dokončení vývoje je optimalizace a testování témat nezbytnými kroky k zajištění jejich stability, bezpečnosti a dobrého výkonu.

Ujistěte se, že kód je bezpečný a překladatelný.

Veškerý dynamický text, který je přímo zobrazován na stránce, by měl být obalen pomocí funkce pro překlad, aby bylo možné dosáhnout internacionalizace (i18n). Nejčastěji používanou funkcí je… esc_html()esc_html_e()()Zároveň je nutné pro proměnné, které jsou získány od uživatelů nebo z databáze a použity v HTML atributech, URL adresách nebo JavaScript kódu, použít odpovídající funkce na jejich čištění. esc_attr()esc_url()wp_kses_post()Je to pro prevenci útoků typu cross-site scripting (XSS).

Provedení testů kompatibility mezi různými prohlížeči a testů responzivity

Vaše webové stránky musí správně fungovat a vypadat v různých prohlížečích (Chrome, Firefox, Safari, Edge) a na různých velikostech zařízení (telefony, tablety, počítače). K dosažení responzivního designu použijte CSS media queries. Před vydáním webových stránek proveďte důkladné testy na skutečných zařízeních, nebo využijte funkce simulace zařízení v nástrojích pro vývojáře prohlížečů k pomocným testům.

Optimalizace výkonu a úklid systému

Odstraňte všechny ladící kódy a poznámky, které mohly být při vývoji zanechány. Ujistěte se, že obrázky a další zdrojové soubory jsou komprimovány. Zvažte sloučení malých souborů CSS nebo JavaScript a povolte serverovou kompresi pomocí protokolu Gzip. Ačkoli samotné téma nezpracovává vykazování obsahu z mezipaměti (cache), můžete zajistit, aby byl kód čistý. Doporučujeme uživatelům používat doplňky pro zlepšení výkonu webové stránky, např. W3 Total Cache.

Vytvoření dokumentace s popisem tématu

Profesionální téma by mělo obsahovat: readme.txt Soubor obsahuje stručný popis funkčnosti tématu, postup instalace a použití možností přizpůsobení. Jedná se jak o návod pro uživatele, tak i o povinný dokument při předkládání tématu do oficiálního adresáře WordPress.

Závěr

Vytvoření vlastního WordPress tématu od nuly je systematický proces, který vyžaduje, aby vývojář rozuměl nejen HTML, CSS a PHP, ale také dobře ovládal základní koncepty WordPressu, jako jsou struktura šablon, hlavní cyklus vykazování obsahu, hooky a API. Počínaje nastavením prostředí a plánováním struktury souborů, postupně vytvoříte šablony, přidáte funkční možnosti a nakonec téma optimalizujete a zabezpečíte. Výsledkem bude WordPress téma, které splňuje moderní webové standardy, je bezpečné, spolehlivé a snadno udržovatelné. Tento proces je nejlepším způsobem, jak hloubkově poznat vnitřní mechanismy WordPressu a získat plnou kontrolu nad vzhledem a funkcemi vašeho webu.

Časté dotazy

Je nutné být zdatný v PHP při vývoji témat pro WordPress?

Ano, PHP je serverový programovací jazyk používaný pro WordPress. Logika temát, získávání dat a generování dynamického obsahu závisí na PHP. Je potřeba ovládat základní syntaxi PHP, použití funkcí a jejich kombinaci s HTML. Nemusíte však být odborníci na PHP – pro začátek stačí porozumět specifickým šablonovým značkám a funkcím WordPress.

Proč se moje téma nezobrazuje v záložce „Background“ nebo není možné ho aktivovat?

Nejčastější příčinou je style.css Formát poznámky s informacemi o tématu na vrcholu souboru není správný, chybí nutné údaje, nebo je složka s tématy umístěna na nesprávném místě. Ujistěte se, že složka s tématy je umístěna na správném místě. wp-content/themes/ V adresáři, a také… style.css Informace jako “Theme Name” v textu jsou správné a bez chyb.

Jak vytvořit různé layouty pro konkrétní typy stránek?

K tomu je potřeba využít systém úrovní šablon v WordPressu. Například můžete vytvořit šablonu s názvem… page-about.php Použijte soubor k individuálnímu nastavení rozvrhu stránky “O nás” (předpokládejme, že je její alias “about”). Stejně tak…single-post.php Použito pro samostatné články.category.php Slouží k třídění a archivaci stránek. WordPress automaticky použije tyto konkrétnější šablony podle pravidel hierarchie.

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

functions.php Soubory jsou součástí tématu a jejich funkce jsou úzce spojeny s vzhledem a chováním tohoto tématu. Aktivní nebo neaktivní jsou v závislosti na změně tématu. Naopak pluginy slouží k přidání funkcí, které jsou univerzální a nezávislé na konkrétním tématu (např. kontaktní formuláře, optimalizace pro vyhledávače – SEO). Pokud je nějaká funkce nutné zachovat i při změně tématu v budoucnu, je vhodnější ji implementovat jako plugin. Dobrou praxí je… functions.php V této části je uložen pouze kód funkcí, které jsou silně spojeny s vizuálním vzhledem a uspořádáním aktuálního tématu.