Kompletní průvodce vývojem WordPress pluginů: Vytvořte si svůj první funkční plugin od nuly

Čtení za 3 minuty.
2026-03-16
2026-06-03
2,285
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í pro pluginy WordPress a základní přípravy

Než začnete psát kód, je velmi důležitá stabilní a efektivní vývojová prostředí. To nejenže zvýší vaši výkonnost při vývoji, ale také vám pomůže dodržovat osvědčené postupy a zajistí kvalitu a kompatibilitu vašich pluginů.

Nejprve potřebujete místní vývojové prostředí pro WordPress. Můžete rychle nastavit nástroje jako XAMPP, MAMP, Local by Flywheel nebo Docker. Ujistěte se, že ve vašem prostředí běží novější verze PHP (doporučujeme verzi 7.4 nebo vyšší) a MySQL/MariaDB. Místní vývojové prostředí vám umožní volně provádět testy a ladění, aniž by to ovlivnilo webové stránky v reálném provozu.

Dále budete potřebovat editor kódu nebo integrované vývojové prostředí (IDE). Visual Studio Code, PhpStorm nebo Sublime Text jsou vynikajícími volbami, které poskytují funkce pro výrazové zvýraznění kódu, podporu při psaní kódu a možnosti ladění. Doporučujeme také nainstalovat nástroje na kontrolu kvality kódu, např. PHP_CodeSniffer, a nakonfigurovat je podle standardů kódování WordPressu, abyste zajistili, že váš kód bude v souladu s jádrem WordPressu.

Doporučujeme k přečtení. Kompletní průvodce vývojem pluginů pro WordPress: od začátků až po vytváření profesionálních rozšíření.

Na závěr je důležité pochopit základní strukturu WordPress pluginů – to je první krok k jejich vytvoření. Nejjednodušší plugin vyžaduje pouze jediný hlavní PHP soubor, do kterého je na začátku vložena specifická poznámka obsahující informace o tomto pluginu. Tento soubor slouží jako vstupní bod pro plugin a WordPress na základě těchto informací identifikuje a spravuje váš plugin.

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.

Vytvořte svůj první soubor plug-inu.

Začněme vytvořením nejjednoduššího pluginu “Hello World”. Tento proces vám pomůže pochopit základní strukturu pluginů a způsob, jakým WordPress rozpoznává pluginy.

Nejprve, ve složce s instalací WordPressu:wp-content/pluginsV té složce vytvořte novou složku. Název složky by měl být jedinečný, popisný a měl by obsahovat pouze malá písmena a spojovníky, například:my-first-plugin

V této složce vytvořte hlavní PHP soubor, jehož název obvykle odpovídá názvu složky, například:my-first-plugin.phpNa začátku tohoto souboru musíte přidat poznámku o hlavičce pluginu, která splňuje standardy WordPressu. Jedná se o “identifikační kartu” pluginu – obsahuje informace jako název, popis, verzi, autora a další podrobnosti. Bez této poznámky WordPress nebude schopen váš plugin najít v seznamu pluginů v administraci.

Níže je ukázka nejzákladnějšího souboru pluginu:

Doporučujeme k přečtení. Začněme od začátku: Proč si vybrat vývoj pluginů pro WordPress?

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果ABSPATH未定义,则退出
}

Po uložení tohoto 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 vidět, že “Můj první plugin” („My First Plugin“) se objevilo v seznamu příslušenství. Nyní můžete tento plugin aktivovat, ale zatím nebude nic dělat. Kód v…if ( ! defined( ‘ABSPATH’ ) )Kontrola je důležitou bezpečnostní praxí, která zabrání uživatelům v přímém přístupu k souborům vašeho pluginu prostřednictvím URL adresy a zajišťuje, že kód bude spuštěn pouze v prostředí WordPressu.

Přidat základní funkce pro plugin

Aktivovaný plugin musí provést některé operace. V WordPressu se to hlavně provádí pomocí “akčních háčků” (Action Hooks) a “filtrovacích háčků” (Filter Hooks). Jsou to základní prvky architektury WordPress pluginů, které vám umožňují vložit svůj vlastní kód nebo upravit data v určitých okamžicích během provozu webu.

Pomocí akčních háčků (action hooks) lze přidávat notifikace do administrativního panelu.

Akční háčky vám umožňují spouštět vlastní funkce v určitých okamžicích během provádění WordPressu – např. po dokončení inicializace, při načítání hlavičky stránky nebo při uložení článku. Přidáme si jednoduchou funkci, která zobrazí vítanou zprávu v horní části administrativního panelu WordPressu.

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.

Použijemeadmin_noticesTento akční hook: Nejprve musíte vytvořit funkci, která bude vypisovat HTML obsah, a poté ji použít…add_action()Funkce “namontuje” tuto funkci na daný „hák“ (hook).

Do svého hlavního souboru pluginu přidejte následující kód:

/**
 * 在管理后台显示欢迎通知
 */
function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p>Vítejte při používání “Mého prvního pluginu”! Plugin byl úspěšně aktivován.</p>
    </div>
    &lt;?php
}
// 将函数挂载到 admin_notices 动作钩子
add_action( &#039;admin_notices&#039;, &#039;myfp_display_admin_notice&#039; );

Uložte změny a obnovte své WordPress administrativní rozhraní. Měli byste vidět zelené upozornění o úspěchu v horní části stránky. Všimněte si také názvu funkce.myfp_display_admin_noticeByl použit předpona.myfp_(Pochází z zkratky názvu pluginu) – To je pro předcházení konfliktům s názvy funkcí jiných pluginů nebo témat. Jedná se o pravidlo pojmenovávání, kterému se musí dodržovat.

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

Použití filtrovacích hooků k úpravě obsahu článků

Filtrovací hooky vám umožňují upravovat data předávaná v WordPressu. Například můžete změnit obsah článku, jeho nadpis nebo abstrakt před tím, než jsou zobrazeny. Vytvořme funkci, která automaticky přidá na konci každého článku prohlášení o autorských právech.

Použijemethe_contentTento filtrovací hook – potřebujete vytvořit nástroj, který přijímá původní obsah…$contentFunkci, která se nachází v daném místě kódu, upravte a poté vraťte upravený obsah.

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.

Přidejte následující kód do souboru svého pluginu:

/**
 * 在文章内容末尾添加版权声明
 * @param string $content 原始的文章内容
 * @return string 修改后的文章内容
 */
function myfp_add_copyright_to_content( $content ) {
    // 仅对主循环中的单篇文章页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = '<p><em>Copyright to this article belongs to this website. Please indicate the source when reproducing it.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
// 将函数挂载到 the_content 过滤器钩子,优先级为10
add_filter( 'the_content', 'myfp_add_copyright_to_content', 10 );

Nyní, když prohlížíte jakýkoli článek na webu, na spodní straně obsahu se zobrazí vaše přidané uvedení autorských práv. Podmínkové testy v funkcích zajišťují, že toto uvedení bude vždy zobrazeno.is_single() && in_the_loop() && is_main_query()Je to velmi důležité – to zajišťuje, že tento text bude zobrazen pouze v hlavním cyklu jednotlivých článkových stránek na předním plánu („front end“), a nikoli v seznamu na úvodní stránce, v příslušenstvích („widgets“) nebo jinde. Jedná se o detail, na který je třeba při vývoji kvalitních pluginů dbát.

Internationalizace pluginů a osvědčené postupy

Aby váš plugin mohl být používán uživateli po celém světě, je internacionalizace (i18n) nezbytným krokem. WordPress poskytuje kompletní funkce pro podporu překladu textů v pluginu do jiných jazyků.

Připravte text pro plugin, který bude podporovat překlad.

Potřebujete použít určitou funkci k obalení všech řetězců, které se zobrazují uživateli v pluginu. Nejčastěji používanou funkcí je…()Použito k získání překladu._e()Používá se k přímému zobrazení výsledku překladu, stejně jako…esc_html()Používá se v kontextech, kde je nutné HTML znaky eskalovat (escape).

Nejprve upravíme texty v funkcích pro zasílání notifikací a zobrazení informací o autorských právech, které jsme předtím vytvořili, a použijeme funkci pro překlad:

function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p><?php _e( '欢迎使用“我的第一个插件”!插件已成功激活。', 'my-first-plugin' ); ?></p>
    </div>
    &lt;?php
}

function myfp_add_copyright_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = &#039;<p><em>' . esc_html__( '本文版权归本网站所有,转载请注明出处。', 'my-first-plugin' ) . '</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}

Všimněte si, že každá funkce pro překlad obsahuje druhý parametr.‘my-first-plugin’Toto je to, co jste definovali v hlavičce pluginu.Text DomainJedná se o jedinečný identifikátor, který slouží k tomu, aby WordPress věděl, ke kterému pluginu patří tyto řetězce.

Poté musíte to specifikovat v poznámkách v hlavě pluginu.Domain Path(Tj./languagesUmístěte překladatelské soubory (.po a .mo) do dané složky. Pro vytváření a správu těchto souborů můžete použít nástroje, jako je Poedit.

Dodržovat bezpečnostní a kódové normy

Bezpečnost je při vývoji doplňků (pluginů) nejdůležitějším aspektem. Nikdy nesmíte důvěřovat datům, která uživatelé zadají. Při zpracovávání jakýchkoli dat pocházejících od uživatelů musíte být maximálně opatrní.$_GET$_POST$_REQUESTPřed zpracováním dat je nutné je ověřit, očistit a escapeovat.

WordPress poskytuje bohatou sadu funkcí, které vám mohou pomoci:
* 验证(Validation):检查数据是否符合预期格式(如is_email())。
* 清理(Sanitization):清除数据中的非法字符(如sanitize_text_field()sanitize_email())。
* 转义(Escaping):在将数据输出到HTML、JavaScript或URL之前,确保其安全(如esc_html()esc_js()esc_url())。

Kromě toho při přímé manipulaci s databází je nezbytné vždy používat třídy určené k práci s databází WordPressu.$wpdbZadané metody, jako například…$wpdb->prepare()Je to pro prevenci útoků typu SQL injection.

Závěr

Díky této příručce jste dokončili celý proces vytvoření funkčního WordPress pluginu od nuly. Naučili jste se, jak nastavit prostředí, vytvořit základní soubory pluginu, používat akce a filtrové háčky k přidávání funkcí do WordPressu, a také jak zvýšit profesionalitu a použitelnost pluginu prostřednictvím internacionalizace a bezpečnostních postupů. Podstatou vývoje pluginů je pochopení a obratné používání systému háčků WordPressu, který nabízí bezkonkurenční možnosti rozšíření a flexibilitu. Pamatujte, že začněte s jednoduchými funkcemi, postupně je iterujte a vždy dávejte přednost bezpečnosti a kvalitě kódu – tak budete schopni vytvořit silný a spolehlivý WordPress plugin.

Časté dotazy

Musí být plugin umístěn do jedné složky?

Ne nutně. Velmi jednoduchý plugin v jednom souboru může to přímo provést.plugin-name.phpUmístitwp-content/plugins/Ve složce. Pro všechny pluginy, které obsahují více souborů (např. CSS, JS, obrázky nebo jazykové soubory), však doporučujeme vytvořit samostatnou složku, ve které budou všechny související soubory uspořádány. Tím bude struktura přehlednější a usnadní se správa.

Jak vytvořit stránku pro nastavení pro můj plugin?

Můžete využít API pro nastavení poskytovaný WordPressem k vytvoření profesionálních a bezpečných stránek pro nastavení. Hlavní kroky zahrnují:add_menu_page()add_submenu_page()Funkce registruje stránku s menu a poté ji použije.register_setting()add_settings_section()add_settings_field()Použijte funkce k definování nastavení polí a kapitol. Nakonec napište funkci na zpětnou volání, která vytvoří HTML formulář pro stránku nastavení.

Proč je při vývoji doplňků (pluginů) předpona tak důležitá?

WordPress je rozsáhlý ekosystém složený z doplňků (pluginů) a tem (témů). Veškerý kód běží v jednom globálním jmenném prostoru. Pokud jste definovali něco s názvem…get_data()Pokud běžná funkce v aplikaci obsahuje stejné jméno jako funkce definovaná v jiném pluginu, dojde k fatální chybě, která může způsobit kolaps celé webové stránky. Použití jedinečného předponování (např. zkratky názvu pluginu) může výrazně snížit pravděpodobnost takových konfliktů a zajistit kompatibilitu mezi různými pluginy.

Jak bych měl ladit kód svého pluginu?

Při vývoji pro WordPress je preferovaným nástrojem pro ladění aktivace…WP_DEBUGMůžete to udělat na webových stránkách.wp-config.phpVe souboru je to možné nastavit pomocí určitých parametrů.define( ‘WP_DEBUG’, true );Přijďte to aktivovat. Díky tomu se všechny chyby, varování a upozornění v PHP zobrazí na obrazovce. Pro složitější ladění můžete použít…error_log()Funkce zapisuje informace do chybového logu serveru, nebo lze použít profesionální nástroje pro ladění PHP, jako je Xdebug, ve spojení s vaším integrovaným vývojovým prostředím (IDE), pro ladění kódu řádek po řádku.