Úvod do vývoje WordPress temat: Vytvořte si své první vlastní téma od nuly

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

Pro vytvoření plně funkčního WordPress tématu je potřeba připravit sadu základních souborů. Tyto soubory tvoří kostru tématu a každý z nich má svou specifickou funkci.

Nejzákladnější soubory zahrnují:
* `style.css`:主题的样式表,同时也是主题的“身份证”,包含主题名称、作者、描述等元信息。
* `index.php`:主题的主模板文件,是默认的首页和文章列表页模板。
* `header.php`:网站的头部模板,通常包含`<head>`部分和网站顶部的导航区域。
* `footer.php`:网站的底部模板,通常包含版权信息、脚本等。
* `functions.php`:主题的功能文件,用于添加自定义功能、注册菜单、侧边栏等。

Začněme vytvořením souboru `style.css`. Na začátku tohoto souboru musíte přidat hlavičkový komentář s informacemi o tématu.

/*
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
*/

Následně vytvořte soubor `index.php`. V jeho nejzákladnější verzi je nutné zavést části hlavy (header) a paty (footer) a poté cyklicky vypsat obsah článků.

<?php get_header(); ?>

<main id="main-content">
    
            <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>
        
        <p>Zatím nejsou žádné články k dispozici.</p>
    <?php endif; ?>
</main>

<?php get_footer(); ?>

Soubory `header.php` a `footer.php` obsahují respektive obecnou hlavičkovou a dolní část webové stránky (HTML strukturu). Soubor `functions.php` slouží k rozšíření funkcionalit tématu (templatů webové stránky).

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.

Porozumění struktuře šablon a cyklům

WordPress využívá inteligentní systém hierarchie šablon k určení způsobu zobrazení obsahu jednotlivých stránek. Například při návštěvě konkrétního článku WordPress nejprve hledá soubor `single.php`; při návštěvě stránky určené k zobrazení kategorie hledá soubor `category.php`; pokud tyto soubory neexistují, přejde na soubor `archive.php` a v neposlední řadě na soubor `index.php`.

Co je hlavní cyklus?

`the loop`是WordPress主题开发的核心概念。它是一段PHP代码,用于从数据库中获取文章内容并将其显示在网页上。你在`index.php`中看到的`while ( have_posts() ) : the_post();`就是循环的开始。在循环内部,你可以使用一系列模板标签来输出文章信息,如`the_title()`, `the_content()`, `the_permalink()`等。

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress temat: Od základů až po pokročilé techniky

Vytvořte další soubory šablon.

Aby byl tématický rámec profesionálnější, měl byste vytvořit několik šablonových souborů, které se často používají. Například můžete vytvořit soubor `single.php`, který bude sloužit k samostatnému zobrazení článků:

<?php get_header(); ?>

<main>
    <?php while ( have_posts() ) : the_post(); ?>
        <article>
            <h1><p><strong> Řekněte mi něco o sobě.</strong></p></h1>
            <div class="post-meta">
                Zveřejněno:  | Autor:
            </div>
            <div class="post-content">
                <?php the_content(); ?>
            </div>
        </article>
        
</main>

<?php get_footer(); ?>

Stejně tak můžete vytvořit soubor `page.php` pro definování šablony stránky a soubor `archive.php` pro definování šablony archivních stránek obsahujících kategorie, tagy a podobně.

Integrace menu a bočního panelu

Moderní design obvykle zahrnuje navigační menu a oblast s příslušenstvím v bočním panelu, které lze přizpůsobit podle potřeb uživatelů. Tyto funkce je nutné registrovat a aktivovat pomocí souboru `functions.php`.

Registrovat navigační menu

Přidáním následujícího kódu do souboru `functions.php` můžete pro dané téma registrovat položku menu, například “Hlavní menu”.

function my_first_theme_setup() {
    // 注册一个导航菜单位置
    register_nav_menus( array(
        'primary' => __( '主菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

Po registraci mohou uživatelé v administraci WordPressu v sekci “Vzhled” -> “Menu” přiřadit menu na požadované místo. Poté musíte do souboru `header.php` v místě, kde chcete menu zobrazit, přidat následující kód, abyste ho aktivovali:

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.
<nav id="site-navigation">
    <?php
    wp_nav_menu( array(
        'theme_location' => 'primary',
        'menu_id'        => 'primary-menu',
    ) );
    ?>
</nav>

Přidat panel nástrojů na boku stránky

Malé nástroje (“widgets”) jsou velmi flexibilní funkcí WordPressu. Chcete-li přidat postranní panel, je také nutné v souboru `functions.php` registrovat „oblast pro malé nástroje“ („widget area“).

Funkce my_first_theme_widgets_init() {
    register_sidebar( array(
        'name' =&gt; __( 'Hlavní postranní panel', 'my-first-theme' ),
        'id' =&gt; 'sidebar-1',
        'description' =&gt; __( 'Zde přidejte widgety.', 'my-first-theme' ),
        'before_widget' =&gt; '  Funkce my_first_theme_widgets_init() {
    register_sidebar( array(
        'name' =&gt; __( 'Hlavní postranní panel', 'my-first-theme' ),
        'id' =&gt; 'sidebar-1',
        'description' =&gt; __( 'Zde přidejte widgety.', 'my-first-theme' ),
        'before_widget' =&gt; ' &lt;&#039;<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>'function my_first_theme_widgets_init() {  
    register_sidebars( array(  
        'sidebars' =&gt; array(  
            'name' =&gt; 'My first theme',  
            'id' =&gt; 'my_first_theme',  
            'desc' =&gt; 'Sidebar for my first theme',  
        ),  
    ) );  
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' );

Poté ve šablonovém souboru, kde chcete zobrazit boční panel (např. `sidebar.php`), použijte funkci `dynamic_sidebar()` k jeho výstupu.

<aside id="secondary" class="widget-area">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside>

Na závěr nezapomeňte do souborů `index.php` nebo `single.php` použít funkci `get_sidebar()` pro načtení tohoto sidebarového souboru.

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

Přidání stylů a skriptů

为了保持代码的整洁和可维护性,不应该直接在HTML中硬编码样式和脚本链接。正确的方式是通过`functions.php`文件,使用`wp_enqueue_style()`和`wp_enqueue_script()`函数将它们加入队列。

Zavést soubor se styly

Ačkoli soubor `style.css` je nutný, WordPress ho nenaloží automaticky. Je třeba ho explicitně přidat do procesu načítání stylů. Obvykle také rozdělujeme hlavní stylový soubor (main style sheet) od souboru určeného k resetování nastavení stylů (reset style sheet).

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.
function my_first_theme_scripts() {
    // 引入主题的主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri() );

// 引入一个自定义样式表 (假设位于 /assets/css/main.css)
    wp_enqueue_style( 'my-first-theme-main', get_template_directory_uri() . '/assets/css/main.css' );

// 引入一个自定义JavaScript文件 (假设位于 /assets/js/navigation.js)
    wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array(), false, true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

Vývoj pomocí moderních praktik CSS

V front-end vývoji v roce 2026 je velmi důležité věnovat pozornost responsivemu designu a přístupnosti. Ve vašem souboru `style.css` nebo samostatném souboru `main.css` byste měli používat mediální dotazy (media queries), abyste zajistili, že webové stránky budou dobře zobrazeny na různých zařízeních.

/* 基础样式 */
body {
    font-family: sans-serif;
    line-height: 1.6;
}

/* 响应式导航菜单 */
@media screen and (max-width: 768px) {
    #primary-menu {
        display: none;
    }
    /* 移动端菜单样式 */
}

Testování a ladění

Po dokončení vývoje témat je testování nezbytnou částí. Je nutné provést komplexní testování v různých prostředích, prohlížečích a zařízeních.

Aktivovat režim ladění

Během vývoje je nezbytné zapnout režim ladění WordPressu. To vám pomůže rychle odhalit chyby, varování a upozornění v PHP kódu. Otevřete soubor `wp-config.php` a najděte nebo přidejte následující kód:

Doporučujeme k přečtení. Pokročilý průvodce vývojem temát pro WordPress v roce 2026: Vytvoření responzivních firemních webových stránek od nuly

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // 将错误记录到 /wp-content/debug.log 文件
define( 'WP_DEBUG_DISPLAY', false ); // 不在页面上显示错误,更安全

Thematic unit testing

Doporučujeme použít oficiální datové sady pro jednotkové testy temat WordPressu k komplexnímu testování vaší tématiky. Tyto sady obsahují různé typy článků, stránek, medií, komentářů atd., což zajistí, že vaše téma správně zobrazí obsah všech typů a nebudou chybět žádné problémy se stylym nebo rozložením.

Závěr

Od vytvoření základních souborů `style.css` a `index.php` přes pochopení struktury šablon a cyklů až po registraci menu a bočních panelů a bezpečné přidávání stylových skriptů jste prošli celým procesem vytvoření základní, ale kompletní vlastní verze WordPress tématu. Pamatujte, že vývoj témat je iterativní proces – nejlepší praxí je začít s nejjednodušší verzí a postupně přidávat funkce a vylepšovat detaily. Neustálé studium šablonových značek, akčních hooků a filtrů vám umožní vytvářet silnější a flexibilnější témata.

Časté dotazy

Jaké základní znalosti jsou potřebné pro vývoj temat pro WordPress?

Potřebujete ovládat základy HTML, CSS a PHP. Určitá znalost JavaScriptu by také byla velmi užitečná, protože slouží k přidávání interaktivních funkcí. Kromě toho je nezbytné být obeznámeni se základními koncepty WordPressu, jako jsou články, stránky, kategorie, tagy, widgety a menu.

Proč se změny v mém tématu nezobrazí v backendu?

Obvykle je to způsobeno mezipamětí prohlížeče nebo mezipamětí WordPressu. Zkuste nejprve provést náhradní aktualizaci prohlížeče (Ctrl + F5 nebo Cmd + Shift + R). Pokud problém přetrvává, zkontrolujte, zda jste styly a skripty správně přidali do fronty na zpracování, a ujistěte se, že soubor `functions.php` neobsahuje žádné gramatické chyby. Ve velmi vzácných případech bude možné potřebovat smazat mezipaměť serveru nebo pluginů.

Jak zajistit, aby můj webový design („témata“) podporovalo více jazyků?

你需要做好主题的“国际化”准备。这意味着在代码中所有需要翻译的文本,都应使用翻译函数(如`__()`, `_e()`)进行包装,并为`text-domain`设置一个唯一标识(在`style.css`的头部已定义)。然后,你可以使用如Poedit这样的工具创建`.po`和`.mo`翻译文件,使你的主题能够被轻松翻译成其他语言。

Jaký je rozdíl mezi vlastními tématy (custom themes) a podtématy (subtopics)?

Vlastní téma je zcela nové téma, které bylo vyvinuto od nuly. Naopak podtémata vycházejí z existujícího “mateřského tématu” a dědí všechny jeho funkce, styly a šablony. Podtémata vám umožňují upravit nebo přidat pouze ty části, které potřebujete (obvykle styly a některé šablony), aniž byste museli měnit samotné mateřské téma. Tato metoda je bezpečnější a efektivnější při přizpůsobování nebo aktualizaci populárních témat, protože zajišťuje, že vaše změny nebudou přepsány.