Jak se naučit vývoj pluginů pro WordPress od nuly: kompletní návod a praktické tutoriály

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

Porozumění základní architektuře pluginů pro WordPress

Než začnete s vývojem, je nutné pochopit základní koncepty a způsob fungování WordPress pluginů. Plugin je v podstatě sada PHP souborů, které umožňují rozšířit funkce jádra WordPressu a obvykle obsahují nápisy, vykonávací kód, zdrojové soubory atd. Jejich fungování závisí celým způsobem na systému hooků (hooků) poskytovaném WordPressem.

Prozkoumání standardní struktury souborů pro pluginy

Standardní WordPress plugin obvykle dodržuje určitou strukturu adresářů. Hlavní soubor pluginu, například… my-first-plugin.phpMusí být umístěno… /wp-content/plugins/ V adresáři nebo jeho podadresářích. Tento soubor je velmi důležitý, protože obsahuje informace o hlavičce pluginu, které slouží k identifikaci vašeho pluginu v systému WordPress.

Typický adresář pro pluginy může obsahovat následující části: hlavní soubor pluginu, složky určené k uložení statických zdrojů jako JavaScript a CSS. assets/ Souborová složka určená pro soubory PHP tříd. includes/ Obsah, určený pro uživatelské rozhraní admin/public/ Souborová složka a nástroje používané k překladu souborů. languages/ Obsah. Dobrá struktura pomáhá při organizaci a údržbě kódu, zejména když se funkce pluginů stávají složitějšími.

Doporučujeme k přečtení. Vývoj pluginů pro WordPress od začátku až po pokročilou úroveň: kompletní návod k vytváření vlastních funkcí.

Znalost základních informací o hlavičkách souborů pluginů

Každý plugin musí začínat specifickými metadaty („Header“), které jsou obsaženy v bloku PHP komentářů. To je klíčové pro to, aby WordPress rozpoznal plugin. Základní formát je následující:

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.
<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://www.example.com/my-first-plugin
 * Description: 这是一个简短描述,介绍插件功能的句子。
 * Version:     1.0.0
 * Author:      你的名字
 * Author URI:  https://www.example.com
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 * Domain Path: /languages
 */

Mezi nimi,Plugin Name Je to nutné; ostatní informace jsou volitelné, ale doporučujeme je vyplnit. Zejména… Text DomainDomain PathJsou určeny k přípravě pluginů na internacionalizaci (podporu více jazyků). WordPress tyto informace načte a zobrazí je na administrativní stránce určené k správě pluginů.

Nastavení lokálního vývojového prostředí a vytvoření prvního plug-inu

Před zahájením kódování je nezbytné mít izolované, rychle iterovatelné lokální vývojové prostředí. To pomáhá předcházet rizikům, která mohou vzniknout při přímém testování webových stránek online.

Konfigurace místního vývojového nástrojového řetězce

Doporučujeme použít lokální serverové integrační prostředí, jako je Local by Flywheel, XAMPP nebo Laragon. Tyto nástroje umožňují jednoduchou instalaci potřebných komponent – PHP, MySQL a webového serveru – pro provoz WordPress. Kromě toho budete potřebovat editor kódu, např. Visual Studio Code nebo PHPStorm, který poskytuje funkce jako výrazové zvýraznění kódu, podpory při psaní kódu a možnosti ladění. Ujistěte se, že verze PHP, kterou používáte, je kompatibilní s cílovým serverem; obvykle se doporučuje verze PHP 7.4 nebo vyšší.

Napište a aktivujte jednoduchý plugin.

Teď si vytvoříme první funkční plugin. /wp-content/plugins/ V adresáři vytvořte novou složku a pojmenujte ji… my-first-pluginV této složce vytvořte soubor s názvem my-first-plugin.php Soubor „“.

Doporučujeme k přečtení. Ultimátní průvodce vývojem WordPress pluginů: Postavte si svůj první plugin od nuly

Zkopírujte informace o pluginových hlavičkách zmíněné v předchozí části na začátek tohoto souboru. Následně přidáme jednoduchou funkci: automatické přidávání vlastního textu na konci obsahu článku. K tomu budeme potřebovat “filtry” (Filters) v WordPressu. Přidejte níže uvedený kód pod informace o hlavičkách:

// 在文章内容后添加自定义文本
function myfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Děkujeme za čtení! Tento článek byl podpořen projektem “Můj první plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' );

Po uložení souboru se přihlaste do svého WordPress administrátorského panelu a přejděte na stránku “Příslušenství” (Plugins). Měli byste tam vidět nový plugin s názvem “Můj první plugin” (My First Plugin). Klikněte na tlačítko “Aktivovat” (Enable). Nyní zkuste prohlédnout článek na vašem webu – v konci obsahu článku by měl být text, který jsme přidali. Tímto byl váš první WordPress plugin úspěšně nasazen.

Ovládnout klíčové techniky vývoje doplňků (pluginů)

Silná rozšiřitelnost WordPressu je založena na několika základních konceptech: hookech, API pro nastavení (Options API), vlastních typech článků (Custom Post Types – CPT) a operacích s databází. Zvládnutí těchto principů je základem pro pokročilé vývojářské aktivity.

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.

Podrobné pochopení akcí a filtrovacích hooků

Systém hooků je základem pro vývoj pluginů pro WordPress a skládá se z akcí (Actions) a filtrů (Filters). Akční hooky se spouštějí v určitých okamžicích běhu aplikace (např. při načítání hlavy stránky nebo při uložení článku) a umožňují vám provádět určité operace, jako je přidání menu nebo odeslání e-mailu. add_action() Funkce slouží k montáži.

Například, přidejte stránku do menu pro správu v pozadí:

function myfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myfp-settings',  // 菜单slug
        'myfp_settings_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 图标
        20
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Filtrovací háčky vám umožňují “upravovat” data. Zastaví data před tím, než jsou použita (např. zobrazena v prohlížeči nebo uložena do databáze), a vy můžete je změnit a vrátit nové hodnoty. Použili jsme je v našem prvním pluginu. the_content Jde prostě o filtrový hook.

Doporučujeme k přečtení. Podrobné vysvětlení WooCommerce: kompletní návod k vytvoření vysoce výkonného e-commerce webu od nuly.

Ukládání nastavení pluginů pomocí API pro volby

Pluginy obvykle potřebují uchovávat určité konfigurační údaje, jako jsou API klíče, stav zapnutí/vypnutí atd. WordPress pro to poskytuje Options API Pomůže vám to snadno zpracovávat tento typ dat. Mezi klíčové funkce patří: add_option(), get_option(), update_option()delete_option()

Vytvořte jednoduchou nastavovací stránku pro použití těchto funkcí. Nejprve definujte funkce na zpracování volání z výše uvedeného menu. myfp_settings_page Zobrazí se formulář:

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 myfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Nastavení mého pluginu</h1>
        <form method="post" action="/cs/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myfp_settings_group' ); // 输出安全字段
            do_settings_sections( 'myfp-settings' );  // 输出设置部分
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
    </div>
    <br />&lt;?php
}

Poté potřebujete použít… register_setting(), add_settings_section()add_settings_field() Použijte funkce jako `set` a `get` k deklaraci a inicializaci těchto nastavení. Tento proces zajistí, že data budou bezpečně uložena. wp_options V tabulce.

Vytvoření kompletního příkladu praktického pluginu

Integrujeme znalosti, které jsme se dosud naučili, a vytvoříme trochu složitější, ale praktický plugin: plugin pro odhad doby čtení článku. Ten bude pod názvem článku zobrazovat předpokládanou dobu čtení.

Vytvoření hlavního souboru pluginu a funkčních metod

Vytvořit novou složku pro pluginy post-reading-time a s hlavním souborem post-reading-time.phpVyplňte standardní informace o hlavičce pluginu. Poté vytvoříme klíčové funkce pro výpočet doby čtení.

function prt_calculate_reading_time( $post_id ) {
    // 获取文章内容
    $content = get_post_field( 'post_content', $post_id );
    // 清除HTML标签和短代码,只计算文字
    $text = strip_tags( strip_shortcodes( $content ) );
    // 计算字数(中英文混合场景的简单处理)
    $word_count = mb_strlen( $text, 'UTF-8' );
    // 假设平均阅读速度为每分钟300字(可根据需要调整)
    $reading_speed = 300;
    // 计算分钟数,至少1分钟
    $minutes = floor( $word_count / $reading_speed );
    if ( $minutes < 1 ) {
        $minutes = 1;
    }
    // 返回包含时间的字符串
    return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
}

Zobrazování dat na straně klienta v integrovaném režimu s administrací na straně serveru

Dále musíme rozhodnout, jak tento čas zobrazit. Běžným způsobem je přidání času do metadat článku (pod nadpisem). the_content Konkrétní hooky poskytované filtrem nebo tématem. Zde použijeme vhodnější akční hook. thesis_hook_before_post(V závislosti na tématu) nebo, obecněji řečeno, přímo filtrovat obsah článků.

Pro větší flexibilitu jsme vytvořili zkratku (Shortcode) a malý widget (Widget) a poskytli jednoduché možnosti nastavení pro ovládání automatického zobrazení.

Nejprve si zaregistrujte krátký kód:

function prt_reading_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'reading_time' );

$time_text = prt_calculate_reading_time( $atts['id'] );
    return '<span class="reading-time">'. $time_text . '</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' );

Poté můžeme výsledek automaticky přidat na začátek obsahu článku (pomocí filtrů):

function prt_prepend_to_content( $content ) {
    if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
        $time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
        $content = $time_html . $content;
    }
    return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' );

Potřebujete také v pozadí vytvořit možnost nastavení. prt_auto_displayUživatelé tak mohou sami rozhodnout, zda mají funkci automatického zobrazení aktivovat nebo ne. Tím je vytvořen plugin s kompletní funkcionalitou a jasnou strukturou.

Závěr

Po pochopení základní architektury pluginů a informací v souborech s hlavičkami (header files) jsme postupně vytvořili vývojové prostředí a první jednoduchý funkční plugin. Díky podrobnému studiu jádra rozšiřitelnosti WordPress – systému hooků – jsme se naučili, jak ovlivňovat provádění kódu a měnit data, aniž bychom museli měnit samotný základní kód WordPress. Pomocí API Options API jsme mohli pro naše pluginy vytvořit trvalá nastavení. Nakonec jsme spojili teoretické znalosti s praxí pomocí kompletního příkladu pluginu určeného k odhadu doby čtení článků, což zahrnovalo celý vývojový proces od napsání funkční logiky, vytvoření šablon (shortcodes) až po integraci do front-endu. Nezapomeňte, že kvalitní vývoj pluginů začíná jasným plánováním, dodržováním standardů kódování WordPress a vždy s důrazem na bezpečnost, výkon a uživatelský zážitek.

Časté dotazy

Jaké předpokládané znalosti jsou potřebné k vývoji pluginu pro WordPress?

Potřebujete mít solidní základy programování v PHP, protože kód pluginů je většinou napsán v PHP. Zároveň byste měli mít základní znalosti HTML, CSS a JavaScriptu, abyste mohli pracovat s výstupním zobrazením a interakcemi na stránkách. Poznání základních konceptů MySQL vám pomůže porozumět způsobu ukládání a vyhledávání dat v WordPressu. Nejdůležitější je, abyste si zvykli číst oficiální dokumentaci WordPressu (Codex) a referenční materiály pro vývojáře (Developer Reference).

Jak zajistit, aby plugin, který jsem vyvinul, byl bezpečný?

Bezpečnost je velmi důležitá. Vždy provádějte ověřování (validation) a dezinfekci (sanitization) uživatelského vstupu a také escapeování (escaping) výstupních dat. Pro prevenci podvržení požadavků ze strany klienta (Cross-Site Request Forgery – CSRF) používejte náhodné hodnoty (nonces), které poskytuje WordPress. Při sestavování dotazů do databáze je třeba postupovat pečlivě a dodržovat příslušná bezpečnostní pravidla. $wpdb Metody poskytované třídou (například prepare()) Pro prevenci SQL injection je třeba se vyhnout používání nebezpečných funkcí. eval()Pravidelně aktualizujte své pluginy, abyste opravili známé chyby (zranitelnosti).

Kde by měl být plugin umístěn?

WordPress pluginy musí být umístěny na webových stránkách. /wp-content/plugins/ Ve složce. Můžete hlavní PHP soubor pluginu umístit přímo na úrovni kořene této složky, ale standardnější postup je vytvořit pro každý plugin samostatnou podsložku a umístit do ní všechny související soubory (PHP, JS, CSS, obrázky atd.). Tím zajistíte čistou strukturu souborů a předejdete konfliktům s jinými pluginy.

Jak přidat stránku se nastavení pro můj plugin?

Přidání stránky pro nastavení pluginu obvykle zahrnuje několik kroků: Nejprve… add_action( ‘admin_menu’, ‘your_function’ ) Hook registruje nový položku v administrativním menu nebo podmenu. Poté v callback funkci vypíše HTML formulář stránky. Následně se použije… register_setting()add_settings_section()add_settings_field() Použijte funkce API pro nastavení (Settings API) k deklaraci a propojení vašich nastavení. Tyto funkce automaticky zpracují kontrolu oprávnění, ověření platnosti dat (non-CE validation) a uložení volitelných parametrů. Nakonec použijte tyto nastavení ve formulářích. settings_fields()do_settings_sections() Funkce slouží k výstupu potřebných polí.

Co jsou to „hooky“ (háčky) a proč jsou tak důležité?

Hooky systém v WordPressu umožňuje pluginům a temám “zapojit” se do konkrétních částí běhu jeho základního kódu. Rozděluje se na akční háčky (Actions) a filtrové háčky (Filters). Akční háčky se spouštějí při výskytu určitých událostí a slouží k přidávání nových funkcí. Filtrové háčky umožňují upravovat data před jejich použitím nebo uložením. Háčkový systém je jádrem rozšiřitelnosti WordPressu – umožňuje vývojářům významně měnit nebo vylepšovat chování WordPressu bez nutnosti úprav jeho základních souborů, čímž je zajištěna čistota a kompatibilita s budoucími verzemi.