Od nuly: Kompletní průvodce a praktický tutoriál pro vývoj pluginů pro WordPress.

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

Přípravné kroky před vývojem WordPress pluginu

Než začnete psát první řádek kódu, je důkladná příprava základem úspěchu projektu. To zahrnuje nejen nastavení technického prostředí, ale také jasnou analýzu požadavků a plánování projektu.

Nejprve potřebujete místní vývojové prostředí. Doporučujeme nástroje jako Local by Flywheel, MAMP, XAMPP nebo Docker, které vám rychle umožní nastavit prostředí vhodné pro provoz WordPressu s použitím PHP, MySQL a Apache/Nginx. Ujistěte se, že verze PHP odpovídá nejnovějším požadavkům od WordPressu – obvykle je potřeba verze PHP 7.4 nebo vyšší.

Za druhé, je důležité jasně definovat, jaký problém váš plugin má řešit. Je to přidání konkrétní funkce na webové stránky, nebo optimalizace nějakého stávajícího procesu? Jasný popis pluginu a seznam funkcí slouží jako vodítko pro další vývoj. Doporučujeme použít nástroje jako Trello nebo jednoduché dokumenty k plánování verzí a funkcí.

Doporučujeme k přečtení. Návod k vývoji pluginů pro WordPress: kompletní proces od nuly až po uvedení na trh.

Na závěr potřebujete kódový editor nebo integrované vývojové prostředí. Visual Studio Code, PhpStorm a Sublime Text jsou výbornými volbami, které poskytují dobrou podporu pro vývoj v PHP a WordPress, včetně výrazového zvýraznění kódu, doporučení při psaní kódu a funkcí pro ladění. Jakmile budou všechny tyto nástroje připraveny, můžete začít vytvářet základní část vašeho pluginu – hlavní soubor.

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í WordPress plugin.

Všechno je těžké na začátku, ale vytvoření nejzákladnějšího souboru pluginu pro WordPress je mimořádně jednoduché. Tato část vás provede procesem vytvoření základní struktury pluginu, přidání bezpečnostních prohlášení a jeho aktivace.

Vytvořte novou složku, jejíž název by měl být jedinečný a popisovat funkce tohoto doplňku. Například:my-first-pluginV této složce vytvořte hlavní soubor pluginu, který obvykle nese název…plugin-name.phpJe třeba tento soubor pojmenovat. Tento soubor je vstupním bodem pro plugin a WordPress rozpoznává plugin na základě konkrétních poznámek umístěných na začátku tohoto souboru.

Na začátku tohoto hlavního souboru musíte přidat poznámku s hlavičkou pluginu, která splňuje standardy WordPressu. Zde je nejzákladnější příklad:

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

V tomto komentáři je “Název pluginu” povinný; ostatní informace jsou volitelné, ale doporučujeme je vyplnit. Po dokončení nahrávejte tuto složku s pluginem do adresáře instalace WordPress./wp-content/plugins/Je to správná cesta. Přejděte do administrace WordPressu na stránku “Příslušenství” (Plugins) a tam uvidíte svůj plugin a budete moci ho aktivovat. V tuto chvíli ještě nemá žádné funkce, ale úspěšně jste vytvořili plugin, který je rozpoznán systémem WordPress.

Doporučujeme k přečtení. Vývoj pluginů pro WordPress je proces, který začíná od nuly a končí vytvořením jednoho z nejpopulárnějších systémů pro správu obsahu na světě.

Implementovat jednoduchou funkci

Přidejme tomuto „prázdnému“ pluginu první skutečnou funkci: automatické vložení textu s uvedením autorských práv na konec obsahu článku. To vám pomůže lépe pochopit mechanismus „hooků“ v WordPressu.

Nejprve musíme vytvořit funkci, která bude implementovat logiku přidávání textu o autorských právech. Tuto funkci nazveme…myplugin_add_footer_text

function myplugin_add_footer_text($content) {
    // 确保只在网站前端的主文章循环中执行
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $footer_text = '<p><em>Tento článek vám přináší můj první plugin.</em></p>';
        $content .= $footer_text;
    }
    return $content;
}

Dále potřebujeme tuto funkci “připojit” (“mount”) k určitému bodu provedení v WordPressu – tento proces se nazývá „přidání háku“ („adding a hook“). Zde použijeme…the_contentFiltrovací hooky. Do hlavního souboru vašeho pluginu přidejte následující kód:

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.
add_filter('the_content', 'myplugin_add_footer_text');

Po uložení souboru zobrazte stránku článku na svém webu a uvidíte, že na konci obsahu se objevily texty o autorských právech, které jste si sami definovali. Díky tomuto jednoduchému příkladu jste již pochopili základní postup vývoje pluginů: vytvoření funkcí a následné jejich použití.add_actionadd_filterTento „hook“ propojuje danou funkci s životním cyklem WordPressu.

Podrobněji do hloubky: WordPress hooks a API

Mechanismus hooků je esencí vývoje pluginů pro WordPress – umožňuje vašemu kódu běžet v určitých okamžicích nebo na konkrétních místech. Porozumění a obratné využívání hooků je klíčem k vytváření složitějších funkcí.

WordPress hooky jsou především rozděleny do dvou typů: akce (Action) a filtry (Filter). Akční hooky se spouštějí při konkrétních událostech v jádře WordPressu, například při zveřejnění článku nebo načtení administrativního panelu, a vaše funkce mohou v této chvíli provést nějaké úkony. Filtrační hooky slouží k úpravě dat – umožňují vaší funkci změnit hodnoty dat před jejich použitím nebo uložením, například upravit obsah článku, nadpis atd.

Doporučujeme k přečtení. Vývoj pluginů pro WordPress od začátku až po pokročilou úroveň: naučte se vytvářet vlastní funkce krok za krokem.

Vytvořte funkci akčního háčku:

function myplugin_log_post_published($ID, $post) {
    // 当文章发布时,在错误日志中记录一条信息(仅用于演示)
    error_log("文章 {$post->post_title} (ID: {$ID}) 已发布。");
}
// 将函数挂载到 `publish_post` 这个动作钩子上
add_action('publish_post', 'myplugin_log_post_published', 10, 2);

Vytvořte funkci hook pro filtr:

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 myplugin_excerpt_length($length) {
    // 将默认的摘要长度从55个词修改为20个词
    return 20;
}
// 将函数挂载到 `excerpt_length` 这个过滤器钩子上
add_filter('excerpt_length', 'myplugin_excerpt_length');

Když se používá…add_actionadd_filterPři použití více callback funkcí reprezentují třetí a čtvrtý parametr příslušně prioritu a počet parametrů. Správné nastavení těchto parametrů umožňuje přesně ovládat pořadí jejich vyvolávání.

Využití API v nastavení WordPressu

Aby uživatelé pluginů mohli přizpůsobit chování pluginu podle svých potřeb, je nutné vytvořit stránku pro konfiguraci. WordPress poskytuje API pro nastavení, které tento proces zjednodušuje. Obvykle se jedná o tři hlavní funkce:register_settingSlouží k registraci sady nastavení.add_settings_sectionSlouží k přidání nastavovací oblasti na stránku.add_settings_fieldSlouží k přidání konkrétních polí do této oblasti.

Vytvořte funkci pro stránku s možnostmi výběru:

function myplugin_settings_page() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单 Slug
        'myplugin_render_settings_page' // 用于输出页面内容的回调函数
    );
}
add_action('admin_menu', 'myplugin_settings_page');

Poté potřebujete to implementovat.myplugin_render_settings_pageFunkce slouží k zobrazení formuláře a k jeho použití…settings_fieldsdo_settings_sectionsFunkce slouží k výstupu polí formuláře automaticky zpracovaných pomocí WordPress API.get_optionVe funkci můžete snadno získat hodnoty volitelných parametrů uložené uživatelem kdekoli v kódu pluginu.

Pokročilé postupy vývoje doplňků a jejich publikování

Když se funkce vašeho pluginu stále zlepšují a objem kódu roste, správná organizace kódu, bezpečnostní ochrana a podpora internacionalizace se stávají zásadními aspekty.

Pro udržení čitelnosti kódu je doporučeno rozdělit kód s různými funkcemi do různých souborů. Například registraci hooků a hlavní funkce umístěte do hlavního souboru, zatímco kód související se nastavovacími stránkami dejte do samostatného souboru.admin/Podadresář – umístěte kód pro funkce front-endu tam.public/Pod adresáře a jejich obsah se následně načítá podle určitých podmínek. Využití objektově orientovaného programování (OOP) je také výbornou praxí při správě složitých doplňků, neboť umožňuje lepší zabalení dat a funkcí do jednotlivých objektů.

Bezpečnost je životně důležitá součástí vývoje doplňků. Veškerá data získaná od uživatelů (jako např.)$_GET$_POST$_COOKIEVšechny tyto prvky musí být ověřeny a dezinfikovány. WordPress poskytuje mnoho funkcí, které vám mohou pomoci s tímto procesem.sanitize_text_fieldwp_kses_postintvalPři výstupu jakýchkoli dat do prohlížeče nebo databáze je také nutné provést escapeování. K tomu se používají speciální znaky, které umožňují správné zpracování dat.esc_htmlesc_attrwp_ksesFunkce. Pro operace s databází je nutné používat funkce poskytované WordPressem.$wpdbTřídy a jejich…prepareMetody pro prevenci SQL injection.

Realizace internacionalizace pluginu.

Aby váš plugin mohl být používán uživateli po celém světě, je internacionalizace nezbytným krokem. To zahrnuje hlavně dvě fáze:__()_e()Funkce `wait` obaluje všechny řetězce, které je třeba přeložit, stejně jako správné načtení textového pole.

V hlavičce pluginu jsme již definovali textový domén (text domain). Při inicializaci pluginu (obvykle v hlavním souboru) je nutné načíst jazykové soubory.

function myplugin_load_textdomain() {
    load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('init', 'myplugin_load_textdomain');

Poté můžete použít něco podobného…__('Hello World', 'my-first-plugin')Použijte způsob psaní „“ k označení řetězců. Překladatelé mohou využít nástroje jako Poedit a podle generovaných….potVytvoření šablonového souboru.po.moPřeložte soubor a umístěte ho do pluginu./languages/V adresáři.

Na závěr, až budou funkce pluginu stabilní, můžete se rozhodnout ho odeslat do oficiálního adresáře pluginů WordPress, aby jej mohlo využívat více lidí. K tomu budete potřebovat soubory s kódem pluginu zabalit do vhodné formátu a napsat podrobný popis jeho funkcí a vlastností.readme.txtSoubor a dodržujte vývojová pravidla komunity.

Závěr

Vývoj pluginů pro WordPress je cesta, během které se nápady proměňují v funkční nástroje. Začínáte nastavením prostředí a vytvořením základních souborů pluginu, poté postupně pronikáte do jádra systému – do mechanismů hooků a nastavení API – a nakonec se seznámíte s pokročilými tématy, jako je organizace kódu, bezpečnost a internacionalizace. Klíčem celého procesu je pochopení událostně řízené architektury WordPressu, která umožňuje bezproblémové rozšíření jeho základních funkcí pomocí akcí a filtrů. Nezapomeňte, že začátek je v malé funkci, kterou postupně vylepšujete, a že bezpečnost kódu a uživatelský zážitek by měly být vždy na prvním místě. To je základním předpokladem pro úspěšného vývojáře pluginů.

Časté dotazy

K vývoji WordPress pluginů je potřeba ovládat následující programovací jazyky:
Pro vývoj pluginů pro WordPress je nutné ovládat hlavně jazyk PHP, protože samotný kernel WordPressu je napsán v PHP. Front-end funkce obvykle zahrnují HTML, CSS a JavaScript. Pro interakci s databází jsou také užitečné základní znalosti SQL.$wpdbTato třída obsahuje většinu operací.

Jak ladit můj WordPress plugin?

Během vývojové fáze se doporučuje zapnout režim ladění (debugging mode) v WordPressu.wp-config.phpV dokumentu budou uvedeny následující informace:WP_DEBUGKonstanta je nastavena natrueMůžete také použít…error_log()Funkce zaznamenává informace do chybového logu serveru. Pro složitější ladění lze použít profesionální nástroje, jako je Xdebug nebo Query Monitor, které umožňují sledovat provádění kódu a databázové dotazy.

Jak může můj plugin interagovat s třetími službami nebo API?

Pluginy mohou být integrovány pomocí HTTP API WordPressu (např.wp_remote_get()wp_remote_post()Zajišťuje bezpečnou a stabilní komunikaci s externími službami. HTTP API WordPress obsahuje vestavěné funkce pro zpracování časových limitů, ověřování SSL atd., což je spolehlivější než přímé použití funkcí curl nebo file_get_contents v PHP. Při zpracovávání odpovědí je nutné pečlivě kontrolovat chyby a provádět odpovídající chybovou správu.

Jak mám přidat vlastní databázovou tabulku do svého pluginu?

Ačkoli tabulka možností WordPress postačuje pro většinu potřeb při uložení konfigurací, strukturovaná data mohou být vhodnější k uložení do vlastních tabulek. Můžete to provést pomocí hooků aktivace pluginů.register_activation_hookV procesu registrace funkcí se provádí vytvoření SQL příkazu pro vytvoření tabulky. Je nutné použít…$wpdb->prefixUjistěte se, že předpona tabulky je správná, a použijte ji.dbDeltaFunkce slouží k bezpečnému vytvoření nebo aktualizaci struktury tabulky. Jakékoli dotazy na vlastní tabulky by měly probíhat prostřednictvím těchto funkcí.$wpdbObjekt je poté zpracován (převeden, uložen atd.).

Jak zajistit, aby můj plugin byl kompatibilní s ostatními pluginy nebo tematikami?

Nejlepšími postupy pro zachování kompatibility jsou: používání základních API WordPressu a standardních hooků; přidávání jedinečných předpon k názvům funkcí, tříd a nastavení (např. pomocí zkratek pluginů); uzavírání funkcí do tříd nebo jmenných prostorů, aby se předešlo konfliktům při pojmenovávání; vyhýbání se přímému měnění globálních proměnných; a před prováděním operací, které mohou ovlivnit globální stav (jako je registrace šablon nebo vytváření vlastních typů článků), ověření, zda tyto operace již nebyly provedeny. Před vydáním produktu proveďte co nejvíce testů v různých prostředích.