Naučte se vyvíjet pluginy pro WordPress: vytvářejte efektivní přizpůsobené funkční moduly od nuly.

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

S tím, jak WordPress zaujímá dominantní pozici na trhu systémů pro správu obsahu po celém světě, vývoj vlastních doplňků (pluginů) pro něj se stal klíčovou dovedností pro rozšiřování funkcí webových stránek a splňování specifických obchodních požadavků. Dobře navržený plugin dokáže zabalit složité funkce do jediného celku, čímž umožňuje modularitu a opakované využití kódu, aniž by bylo nutné měnit základní soubory WordPressu. Cílem tohoto článku je vás provést postupným procesem systématického učení tvorby efektivních, bezpečných a v souladu s osvědčenými postupy vytvořených pluginů pro WordPress.

Prostředí a základní přípravy pro vývoj doplňků (plug-inů)

Než začnete s kódováním, je velmi důležité vytvořit vhodné vývojové prostředí a pochopit základní strukturu WordPress pluginů. To nejen zlepší efektivitu vývoje, ale také položí solidní základ pro následné ladění a vydávání pluginů.

Nastavení lokálního vývojového prostředí

Doporučujeme použít lokální serverové integrační prostředí, jako je Local, XAMPP nebo MAMP, která umožňují rychlou konfiguraci PHP, MySQL a webových serverů (např. Apache nebo Nginx). Zároveň se ujistěte, že máte nainstalovaný nějaký editor kódu, např. VS Code nebo PhpStorm, a že jsou aktivovány funkce pro podporu PHP a WordPress. Na lokálním počítači nainstalujte čistou verzi WordPress jako “pískovou bednu” („sandbox“) pro testování funkcí pluginů.

Doporučujeme k přečtení. Ultimátní průvodce vývojem pluginů pro WordPress: Vytvoření profesionálních rozšíření od nuly

Porozumění základní struktuře souborů pluginu

Nejzákladnější WordPress plugin může sestávat pouze z jediného hlavního PHP souboru. Tento soubor musí obsahovat specifický komentář pro hlavičku pluginu (Plugin Header Comment), pomocí kterého WordPress rozpozná informace o pluginu. Standardní struktura adresáře s pluginy může vypadat následovně:

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.
my-awesome-plugin/
├── my-awesome-plugin.php (主插件文件)
├── uninstall.php (卸载处理脚本)
├── includes/ (核心功能类与函数目录)
├── admin/ (后台管理相关文件)
├── public/ (前端相关文件)
├── assets/ (静态资源,如JS、CSS、图片)
└── languages/ (国际化语言包)

Při vytváření hlavního souboru musí jeho záhlaví obsahovat poznámku ve formátu podobném následujícímu:

<?php
/**
 * Plugin Name:      我的超牛插件
 * Plugin URI:       你的插件官网地址
 * Description:      这是一个用于演示的插件,功能强大。
 * Version:          1.0.0
 * Author:           你的名字
 * License:          GPL v2 or later
 * Text Domain:      my-awesome-plugin
 * Domain Path:      /languages
 */

Vývoj klíčových funkcí a hooků pro WordPress

Hlavní přitažlivost WordPressu spočívá v jeho výkonném systému hooků, který zahrnuje akce (Actions) a filtry (Filters). Porozumění a obratné využívání hooků je dovedností, kterou musí ovládat vývojáři pluginů.

Přidání funkce pomocí akčních háčků

Akční háčky vám umožňují vložit vlastní kód v určitéch časech během spuštění WordPressu. Například pokud chcete automaticky přidat prohlášení o autorských právech na konci obsahu článku. Nejprve musíte vytvořit funkci, která tuto funkci implementuje, a poté ji použít.add_actionFunkce jej nakonfiguruje tak, aby byl připojen k odpovídajícímu „hooku“ (tj. mechanismu pro spouštění určitých akcí). Například…the_content

function myplugin_add_copyright_to_content( $content ) {
    if ( is_single() ) {
        $copyright_text = '<p>© 2026 Všechna práva vyhrazena. Tento článek byl poprvé zveřejněn na mých webových stránkách.</p>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_add_copyright_to_content' );

Všimněte si, že i když jsme v tomto příkladu změnili obsah, je ve skutečnosti vhodnější pro použití jako filtr. Typický příklad akčního háčku (action hook) je…wp_footerSlouží k zobrazení kódu na spodní straně stránky.

Doporučujeme k přečtení. Úplný průvodce vývojem pluginů pro WordPress: vytvořte kvalitní rozšíření od nuly do jedné.

Upravování dat pomocí filtrovacích hooků

Filtrovací háčky slouží k úpravě dat, která jim jsou předána. Například pokud chcete změnit všechny výstupy s názvy článků, musíte vytvořit funkci, která přijme původní název, po úpravě vrátí nový název a poté jej použije.add_filterProvedení montáže.

function myplugin_filter_post_title( $title ) {
    // 仅在主循环且不是管理后台时生效
    if ( in_the_loop() && ! is_admin() ) {
        $title = '【推荐】' . $title;
    }
    return $title;
}
add_filter( 'the_title', 'myplugin_filter_post_title' );

Vytvořte stránku pro správu pluginů a nastavení možností.

Mnoho pluginů vyžaduje, aby uživatelé měli k dispozici možnosti konfigurace. WordPress poskytuje API pro nastavení (Settings API), který umožňuje bezpečně a snadno vytvářet správní stránky obsahující formulářová pole, provádět ověřování dat a ukládat tyto údaje.

Přidat hlavní správní menu

Nejprve potřebujete použít…add_menu_pageadd_options_pageTato funkce přidá menuový přístup pro váš plugin. Obvykle se nachází v…admin_menuNa akčním 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 myplugin_add_admin_menu() {
    add_menu_page(
        '超牛插件设置', // 页面标题
        '超牛插件',     // 菜单标题
        'manage_options', // 权限要求
        'myplugin-settings', // 菜单slug
        'myplugin_settings_page_html', // 用于输出页面内容的回调函数
        'dashicons-admin-generic', // 图标
        100 // 菜单位置
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Následně potřebujete definovat funkci volání zpět (callback function).myplugin_settings_page_htmlTento kód slouží k načtení obsahu stránky a v rámci této funkce se používá API k registraci polí.

Použijte API pro nastavení k registraci polí.

Klíčové kroky při nastavení API zahrnují: registraci jednoho nastavení (…)register_settingPřidejte blok konfigurace.add_settings_section), a také přidání konkrétních polí pod tento blok (add_settings_fieldZde je zjednodušený příklad:

function myplugin_settings_init() {
    // 1. 注册设置
    register_setting( 'myplugin_settings_group', 'myplugin_options' );

// 2. 添加一个区块
    add_settings_section(
        'myplugin_section_general',
        '常规设置',
        null, // 可选的区块描述回调函数
        'myplugin-settings'
    );

// 3. 为区块添加字段
    add_settings_field(
        'myplugin_field_api_key',
        'API密钥',
        'myplugin_field_api_key_html', // 渲染字段HTML的回调函数
        'myplugin-settings',
        'myplugin_section_general',
        [ 'label_for' => 'myplugin_field_api_key' ]
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

function myplugin_field_api_key_html() {
    $options = get_option( 'myplugin_options' );
    $value = $options['api_key'] ?? '';
    echo '<input type="text" id="myplugin_field_api_key" name="myplugin_options[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

Bezpečnost pluginů, internacionalizace a příprava k vydání

Dokončené pluginy musí řešit otázky bezpečnosti, uživatelského zážitku (např. podporu internacionalizace) a způsobu jejich balení a vydávání. To je poslední a zároveň nejdůležitější krok v procesu vývoje profesionálních pluginů.

Doporučujeme k přečtení. Kompletní průvodce vývojem témat pro WordPress: vytvořte si vlastní webové téma od nuly do jedné.

Implementovat osvědčené postupy zabezpečení

Bezpečnost je životně důležitá pro všechny pluginy. Mezi základní principy patří ověřování (Validation), eskalace (Escaping) a čištění (Sanitization) všech dat pocházejících od uživatelů nebo z externích zdrojů. Tato opatření musí být provedena při výstupu dat do prohlížeče.esc_html()esc_attr()Funkce typu „wait“; použijte je před uložením dat do databáze.sanitize_text_field()Funkce typu „čekání“ („waiting functions“). Nikdy nevěřte vstupům od uživatelů.

Při zpracovávání odeslání formulářů nebo AJAX požadavků je nutné používat náhodné hodnoty (nonce) k ověření účelu a zdroje požadavku, aby se zabránilo útokům typu cross-site request forgery (CSRF). Například:wp_nonce_field( ‘myplugin_action’, ‘myplugin_nonce’ )wp_verify_nonce( $_POST[‘myplugin_nonce’], ‘myplugin_action’ )

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.

Realizace internacionalizace pluginu.

Aby bylo možné používat pluginy uživatelům po celém světě, je nutné podporovat internacionalizaci (i18n). To znamená, že ve všech částech kódu, kde jsou potřeba přeložitý texty, musíte použít funkce pro překlad poskytované WordPressem. Nejčastěji používanou funkcí je…__()_e()

$greeting = __( ‘Hello, world!’, ‘my-awesome-plugin’ );
_e( ‘Settings saved successfully!’, ‘my-awesome-plugin’ );

Z toho‘my-awesome-plugin’Text Domain je definován v poznámkách v hlavičce pluginu. Následně můžete použít nástroje, jako je Poedit, k extrakci řetězců z zdrojového kódu a jejich generování..potŠablony souborů a vytvoření verzí pro různé jazyky..po.moPřeložený soubor je uložen v pluginu./languagesV adresáři.

Připravujeme se k publikování na WordPress.org.

Pokud je váš plán odeslat plugin do oficiálního WordPress pluginového katalogu, musíte se ujistit, že váš kód splňuje požadavky. To zahrnuje mimo jiné to, že musíte mít název pluginu, který odpovídá určitým standardům…readme.txtSoubor by měl být distribuován pod licencí GPLv2 nebo kompatibilní licencí novější verze, aby byla zajištěna kvalita kódu. Také je důležité poskytnout jasný postup pro odinstalaci pluginu. Můžete tento postup vytvořit přímo v samotném pluginu.uninstall.phpPři odstranění pluginu prostřednictvím administrace WordPressu je spuštěn tento soubor, který slouží k vyčištění databází a nastavení vytvořených pluginem.

Závěr

Vývoj pluginů pro WordPress je velmi cennou dovedností, která umožňuje přeměnit kreativní nápady na skutečné funkce. Začíná se nastavením prostředí a pochopením základní architektury systému, pokračuje pokročilým využíváním akcí a filtrů k rozšíření jáderných funkcí, a dále vytvářením uživatelsky přívětivých správních rozhraní pomocí API pro nastavení. Až nakonec, díky přísným bezpečnostním postupům, dokonalé podpoře internacionalizace a standardní přípravě k vydání, se váš plugin může stát “profesionálním” nástrojem. Neustálé studium základního kódu WordPressu a nejlepších postupů komunity je jediným způsobem, jak své vývojářské dovednosti neustále zlepšovat.

Časté dotazy

Kolik souborů potřebuje minimálně jeden plugin?

Jeden plugin obvykle potřebuje minimálně jednu hlavní PHP soubor. Pokud tento soubor obsahuje správné poznámky („header comments“) týkající se pluginu, WordPress jej dokáže identifikovat a aktivovat. Samozřejmě, složitější pluginy se často rozdělují na více souborů, což usnadňuje jejich údržbu.

Jak zabránit konfliktům mezi mým pluginem a jinými pluginy?

Přidání jedinečné předpony ke všem názvům funkcí, tříd, proměnných a možností je nejúčinnějším způsobem, jak předcházet konfliktům. Například:myplugin_function_namemísto běžnéhofunction_nameZároveň je doporučenou praxí při vývoji moderních WordPress pluginů zakomponovat kód do tříd a využít prostorová jména (namespacey) od verze PHP 5.3+.

Je nutné být expertem na PHP, abyste mohli vytvářet doplňky (plugins)?

Ano, solidní znalosti PHP jsou nezbytné, protože WordPress je sám napsán v PHP. Kromě toho jsou vyžadovány znalosti HTML, CSS, JavaScript, stejně jako základy SQL a MySQL. Musíte alespoň rozumět syntaxi PHP, funkcím, polím, základům objektového programování a také způsobům interakce s databázemi.

Jak ladit kód mého pluginu?

Aktivování režimu ladění v WordPressu je nejlepším začátkem. Ve vašem…wp-config.phpV dokumentu budou uvedeny následující informace:WP_DEBUGKonstanta je nastavena natrueTímto se chyby, varování a upozornění PHP zobrazí na obrazovce (pouze v vývojovém prostředí). Kromě toho lze toto také využít…error_log()Funkce může zapisovat informace o ladění do souborů protokolů. Pomocí laděcích doplňků, jako je Query Monitor, lze efektivně analyzovat databázové dotazy, hooky, chyby v PHP a podobně.

Který vývojový rámec bych měl naučit používat, abych urychlil vývoj doplňků (pluginů)?

Pro začátečníky se doporučuje nejprve důkladně porozumět původnímu API WordPressu (systému hooků, API pro nastavení atd.) a až poté zvážit využití různých vývojových frameworků. Populární vývojové nástroje a sady nástrojů, jako je WP-CLI (nástroj pro práci s příkazy z příkazového řádku) nebo Webpack (pro kompilaci zdrojových kódů), jsou velmi užitečné v určitých situacích. Některé “skelety” (“scaffolds”) pro vývoj, např. příkaz „WP-CLI scaffold“, vám mohou pomoci rychle vytvořit strukturu souborů pluginu, která splňuje standardy.