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

Čtení za 2 minuty.
2026-03-19
2026-06-03
2,725
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č je potřeba vytvářet vlastní pluginy pro WordPress?

Když vestavěné funkce WordPressu a stávající pluginy nedokáží plně splnit konkrétní požadavky podniku, vývoj vlastních pluginů se stává nejpřímějším řešením. Vlastní pluginy vám umožňují přidat do základního systému jakékoli funkce, které potřebujete, aniž byste museli měnit samotné soubory jádra WordPressu. Tím je zajištěno, že vaše funkce nezmizí po aktualizaci WordPressu, a zároveň jsou modulární, což usnadňuje jejich přesun mezi různými webovými stránkami a správu. To je lepší než upravovat samotné téma webové stránky.functions.phpSoubory a doplňky (pluginy) představují lepší možnost pro opakované využití funkcí – umožňují oddělit váš kód od konkrétního tématu (tematického vzhledu projektu), čímž se zvyšuje flexibilita a udržovatelnost projektu.

Příprava prostředí a znalostí před začátkem vývoje

Než začnete psát kód, musíte si vytvářet vhodné vývojové prostředí a osvojit si potřebné základní znalosti.

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

Stabilní a izolované lokální vývojové prostředí je velmi důležité. Doporučujeme použít nástroje jako Local by Flywheel, XAMPP nebo MAMP k rychlému vytvoření integrovaného prostředí obsahujícího PHP, MySQL a Apache/Nginx. Ujistěte se, že vaše verze PHP je vyšší než 7.4, verze MySQL vyšší než 5.6, a že máte nainstalovanou nejnovější verzi WordPress.wp-config.phpV něm se doporučuje…WP_DEBUGKonstanta je nastavena natruePro zobrazení chybových zpráv během vývojového procesu.

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

Potřebné znalosti PHP a WordPress API

Pro vývoj pluginů je potřeba základní znalost PHP, včetně použití proměnných, funkcí, tříd a jmenných prostor, stejně jako bezpečného práce s databází. Ještě důležitější je obeznámenost s bohatou API, kterou poskytuje WordPress – zejména s akčními a filtrovacími háčky. Akční háčky vám umožňují spouštět vlastní kód v určitých okamžicích běhu aplikace, zatímco filtrovací háčky vám umožňují upravovat data. Implementace funkcí pluginu do značné míry závisí na šikovném využití těchto háčků.

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ření základní struktury prvního pluginu

Následně si prostřednictvím vytvoření jednoduchého pluginu “Hello World” ukážeme základní strukturu pluginů.

Základní struktura hlavního pluginového souboru

Každý plugin musí mít hlavní soubor, který obsahuje metadata tohoto pluginu. Prosím, vytvořte tento soubor v adresáři vaší instalace WordPress.wp-content/pluginsV té složce vytvořte novou složku – například s názvem „Nová_složka“.my-first-pluginV této složce vytvořte hlavní PHP soubor, který můžete nazvat…my-first-plugin.phpNa začátku tohoto souboru musíte přidat standardní poznámku s informacemi o pluginu.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习用的示例插件,用于在管理后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Tento blok komentářů je nutný, protože na základě něj WordPress rozpozná a zobrazí váš plugin v seznamu pluginů v pozadí.

Vytvořit stránku s menu pro administraci v pozadí

Aby byly funkce viditelné v administraci WordPressu, potřebujeme přidat stránku s administrativním menu. V hlavním souboru pluginu pokračujte v přidávání kódu. Použijeme…add_action()Funkce byla nasazena („montována“).admin_menuTento „akční háček“ je připojen…

Doporučujeme k přečtení. Od začátku až po odbornost: Kompletní průvodce vývojem pluginů pro WordPress a osvědčené postupy

// 添加管理菜单
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限(管理员)
        'my-first-plugin', // 菜单slug
        'mfp_admin_page_content', // 渲染页面内容的函数
        'dashicons-smiley', // 图标(使用Dashicon)
        6 // 菜单位置
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 定义管理页面的内容
function mfp_admin_page_content() {
    ?&gt;
    <div class="wrap">
        <h1>Vítejte v mém prvním pluginu!</h1>
        <p>Toto je jednoduchý příklad WordPress pluginu.</p>
    </div>
    <br />&lt;?php
}

Tento kód přidá do levého navigačního panelu v pozadí WordPressu vrchní položku menu s názvem “Moje pluginy”. Po kliknutí na tuto položku se zobrazí úvodní stránka. Pozor: Při pojmenovávání funkcí je vhodné použít vlastní předponu (např.…)mfp_), aby se předešlo kolizím s názvy funkcí jiných pluginů nebo témat.

Napište první jednoduchou funkci.

Nyní přidáme jednu jednoduchou funkci na straně serveru. Například automatické přidávání vlastního textu na konci každého článku. Pro tento účel použijeme…the_contentFiltrační hooky.

// 在文章内容后添加自定义文本
function mfp_append_text_to_content($content) {
    if (is_single()) { // 仅在单篇文章页面生效
        $custom_text = '<p><em>Tento text byl vylepšen mým prvním pluginem.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'mfp_append_text_to_content');

Tato funkce ukazuje základní použití filtrů: přijímá původní obsah a po úpravě ho vrací. Jedná se o velmi výkonný a často používaný způsob zpracování dat.

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.

Pokročilé praktiky a normy vývoje doplňků (plug-inů)

Po implementaci základních funkcí dodržování osvědčených postupů (best practices) učiní váš plugin robustnějším a bezpečnějším.

Zpracování při aktivaci a deinstalaci doplňků

Když uživatel aktivuje nebo odstraní plugin, může být potřeba vytvořit databázové tabulky, nastavit výchozí nastavení nebo vyčistit data generovaná tímto pluginem. WordPress poskytuje speciální „hooky“ (spojovače), které umožňují tyto operace správně zpracovat.

Pro registraci, aktivaci a odinstalaci hooků je nutné použít hlavní soubor pluginu.register_activation_hookregister_uninstall_hookImplementace funkce. Upozorňujeme, že hook pro odinstalaci by měl být statickou metodou nebo samostatnou funkcí.

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

// 插件激活时执行的操作
function mfp_plugin_activation() {
    // 例如:在选项表中添加一个默认设置
    add_option('mfp_default_greeting', '你好,欢迎光临!');
}
register_activation_hook(__FILE__, 'mfp_plugin_activation');

// 插件卸载时执行的操作
function mfp_plugin_uninstall() {
    // 删除插件创建的选项
    delete_option('mfp_default_greeting');
    // 注意:谨慎操作,此处可删除自定义数据库表
}
register_uninstall_hook(__FILE__, 'mfp_plugin_uninstall');

Bezpečnostní, lokalizační a výkonnostní aspekty

Bezpečnost je při vývoji pluginů nejdůležitějším aspektem. Veškeré uživatelské vstupy (jako jsou odeslání formulářů, parametry URL) musí být ověřeny a očištěny od potenciálně škodlivých prvků. WordPress poskytuje řadu funkcí, které pomáhají zajistit tuto bezpečnost.sanitize_text_field(), esc_html(), wp_kses(), prepare()(Použito pro databázové dotazy) To vám pomůže. Nikdy nesmíte přímo důvěřovat datům zadaným uživateli, ani je přímo vypisovat na stránky nebo do databáze.

Pokud je váš plugin určen pro mezinárodní uživatele, je nutné podporovat lokalizaci (i18n).__()_e()Funkce `etc.` obalují všechny textové řetězce, které je potřeba přeložit.

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.

Z hlediska výkonnosti se snažte vyhnout zbytečným dotazům do databáze nebo operacím náročným na zdroje. Správně využívejte mezipaměť (např.Transient API) a uložte skripty a styly do vhodných souborů.wp_enqueue_script()wp_enqueue_style()Správně zařazeno do fronty – zobrazí se pouze tehdy, když se načtou stránky, které je potřebují.

Balení a distribuce pluginů

Po dokončení vývoje můžete složku s pluginem komprimovat do souboru typu ZIP. Uživatelé ji mohou následně nainstalovat přímo na stránce “Pluginy -> Nainstalovat pluginy -> Nahrát plugin” v administraci WordPress.

Pokud chcete svůj plugin přihlásit do oficiálního adresáře WordPress pluginů, musíte striktně dodržovat příslušné pokyny k přihlášení, včetně standardů kódu (doporučujeme používat WordPress Coding Standards), kompletních dokumentačních poznámek, prohlášení o kompatibilitě a ujistit se, že váš plugin neobsahuje žádný kód, který by porušoval licenci GPL. V roce 2026 se standardy příjmu pluginů s vývojem platformy budou průběžně aktualizovat, proto před přihlášením pečlivě prostudujte nejnovější požadavky.

Závěr

Vývoj pluginů pro WordPress je proces, při kterém se osobní nápady proměňují v funkční nástroje. Začali jsme porozuměním motivům vývoje, vytvořili lokální prostředí a postupně jsme si osvojili strukturu souborů pluginů, přidávání menu v administraci, implementaci základních funkcí a zpracování životního cyklu pluginů (včetně jejich aktivace a deinstalace). Ještě důležitější je, že jsme se zabývali základními vývojovými principy, jako je bezpečnost, lokalizace a výkon – to vše jsou základy pro zajištění kvality a spolehlivosti pluginů. Klíčem k prvnímu kroku v vývoji je samotná praxe. Začněte s příkladem “Hello World” uvedeným v tomto článku a postupně zkoumejte rozsáhlé API a systém hooků WordPressu. Tímto způsobem budete moci postupně vytvářet složitější a užitečnější pluginy, které výrazně rozšíří možnosti WordPressu.

Časté dotazy

Je nutné být zdatným v PHP, abyste mohli vytvářet doplňky pro WordPress?

Ano, pro vývoj pluginů pro WordPress je potřeba solidní znalost PHP. WordPress je totiž sám napsán v PHP a i jádro pluginů je také implementováno v PHP. Musíte porozumět funkcím, třídám, jmenným prostorům v PHP a základním konceptům objektového programování. Kromě toho je užitečné znát základy HTML, CSS a JavaScript pro vytváření interaktivních front-end funkcí.

Jaký je vlastně zásadní rozdíl mezi funkcemi obsaženými v souborech functions.php pluginů a témat?

Hlavní rozdíl mezi těmito dvěma aspekty spočívá v účelu kódu a jeho přenositelnosti (tj. schopnosti fungovat na různých platformách). U témat…functions.phpKód určený k přidání funkcí, které jsou úzce spojeny s vzhledem a funkcemi aktuálního tématu, ztrácí svou platnost při změně tématu. Naopak pluginy jsou moduly funkcí, jejichž kód je nezávislý na konkrétním tématu a jejich účelem je poskytnout soubor specifických funkcí, které mohou běžet v jakémkoli tématu. Proto by měly být univerzální funkce (jako jsou kontaktní formuláře, optimalizace pro SEO) vyvíjeny jako pluginy, zatímco funkce silně spojené s uspořádáním a vzhledem tématu jsou vhodnější umístit přímo do samotného tématu.functions.phpČína.

Jak řešit problémy s kompatibilitou mezi různými verzemi WordPressu?

Klíčem k řešení problémů s kompatibilitou je opatrné používání API a provádění podmínkových kontrol. Během vývoje je důležité prostudovat oficiální manuál WordPressu, abyste znali, ve které verzi byly zavedeny funkce, třídy nebo hooky, které používáte. V případech, kdy je potřeba podporovat starší verze, můžete využít…function_exists()class_exists()Zkontrolujte, zda je daná funkce dostupná. Pokud není, poskytněte elegantní řešení pro její nahrazení nebo zobrazte přívětivé upozornění. Také výslovně uveďte v poznámkách na začátku pluginu rozsah verzí WordPressu, pro které byly testy provedeny a které byly úspěšné.

Jak vytvořit pro plugin nastavitelné ovládací panely?

Standardním způsobem vytvoření ovládacího panelu pro plugin je použití API nastavení (Settings API) WordPressu. Tento proces zahrnuje:register_setting()Zaregistrujte skupinu nastavení a pole a použijte je.add_settings_section()add_settings_field()Definujte kapitoly a konkrétní pole určené k nastavení, a nakonec je použijte v funkci na stránce menu.settings_fields()do_settings_sections()Slouží k zobrazení formulářů. API pro nastavení (Settings API) automaticky zpracovává ověřování „nonce“ při odeslání formulářů, kontrolu oprávnění a ukládání nastavení, což představuje nejlepší postup při vývoji stránek pro úpravy nastavení.

Jaký je správný způsob připojení k databázi při vývoji doplňků (pluginů)?

Absolutně nepoužívejte přímo funkce MySQL v PHP. WordPress pro to poskytuje vlastní nástroje a metody.wpdbPro bezpečnou interakci s databází můžete využít globální třídy. K tomu slouží globální proměnné.$wpdbPřijďte si to prohlédnout. Při vyhledávání, zejména pokud se jedná o dotazy obsahující uživatelský vstup, je nutné používat…$wpdb->prepare()Metody pro prevenci útoků typu SQL injection. Při vytváření vlastních datových tabulek by měly být příkazy SQL pro vytvoření tabulek spuštěny v hooku aktivovaném při aktivaci pluginu a měly by být použity…$wpdb->get_charset_collate()Ujistěte se, že sada znaků (charset) odpovídá nastavením WordPressu.