Kompletní průvodce vývojem pluginů pro WordPress: Od nuly až po jejich nasazení na web

Čtení za 3 minuty.
2026-03-19
2026-06-03
2,418
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é práce a nastavení prostředí.

Než začnete psát jakýkoli kód, musíte se ujistit, že máte správné vývojové prostředí. To nejenže zvyšuje efektivitu, ale je také základem pro vydávání kvalitních doplňků.

Nejprve potřebujete lokální nebo vzdálené serverové prostředí, které podporuje WordPress. Doporučujeme použít nástroje určené k lokálnímu vývoji, jako jsou Local by Flywheel, XAMPP nebo MAMP – ty vám rychle nastaví potřebné služby (PHP, MySQL a webový server). Základní kód WordPressu si můžete stáhnout z jeho oficiálních webových stránek.

Potřebujete kódový editor nebo integrované vývojové prostředí (IDE), jako je Visual Studio Code, PhpStorm nebo Sublime Text. Tyto nástroje poskytují funkce jako výrazové zvýraznění kódu, doplňování kódu a ladění, které jsou pro vývoj velmi důležité.

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

Na závěr vřele doporučujeme vytvořit úložiště pro správu verzí, například na GitHubu nebo GitLabu. I když je váš plugin malý, používání Gitu pro správu verzí vám pomůže sledovat změny, spolupracovat při vývoji a usnadní pozdější přidávání pluginu do oficiálního repozitáře WordPressu.

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 první soubor plug-inu.

Všechny pluginy pro WordPress jsou uloženy… wp-content/plugins V adresáři může být plugin samostatný soubor, nebo také adresář obsahující více souborů. Nejjednodušší způsob, jak začít, je použít jeden konkrétní soubor.

Napsat informace o hlavičce pluginu

Každý WordPress plugin musí obsahovat v hlavním souboru určitý blok PHP komentářů, tzv. “plugin header”. WordPress na základě těchto informací rozpozná a zobrazí váš plugin v administračním rozhraní. Nejzákladnější část tohoto plugin headeru musí obsahovat název pluginu.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个简短的描述,说明这个插件是做什么的。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Tento komentář definuje základní identitu pluginu.Plugin Name Je to nutné; další informace, jako je verze a textové pole, jsou také důležité pro publikaci. Uložte tento soubor jako… my-first-plugin.php A umístit to… plugins V adresáři najdete daný plugin a můžete ho aktivovat na stránce pluginů v administraci WordPress.

Vytvořit jednoduchou funkci

Po aktivaci pluginu zatím nemá žádné funkce. Přidáme mu tedy jednoduchou funkci – například vložení řádku textu do patra webové stránky. K tomu budeme potřebovat využít jeden z klíčových akčních hooků (action hooks) v WordPressu.

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress pluginů: Od základů po dokonalé vytváření vlastních funkcí

Tato funkce slouží k výpisu vlastního textu.
function my_first_plugin_add_footer_text() {
    echo '<p style="text-align: center;">Děkuji, že jste využili můj první plugin!</p>'// Přidejte výše uvedenou funkci do WordPress hooku wp_footer
add_action( 'wp_footer', 'my_first_plugin_add_footer_text' );

Umístěte tento kód pod poznámky v části hlavy pluginu. Po uložení souboru obnovte stránky svého webového projektu a měli byste vidět tuto řádku textu na spodní části stránky. Díky tomuto příkladu jste začali používat systém hooků v WordPressu k rozšíření funkcí.

Core Development: Hooks and Filters

Jádrem vývoje pluginů pro WordPress je mechanismus zvaný „hooky“ (háčky), který vám umožňuje vložit vlastní kód v určitých časech nebo na určitých místech. Hooky se dělí na dvě kategorie: „actions“ (akce) a „filters“ (filtry).

Použití akčních hooků

Akční háčky vám umožňují spouštět funkce v určitých momentech během životního cyklu WordPressu. Příklad z předchozího textu, kdy byl do podtitulku přidán text, využíval právě akční háčky. wp_footer Akce. Dalším často používaným „hookem“ (nástrojem) je… initSpouští se při inicializaci WordPressu a je často používán k registraci vlastních typů článků nebo kategorií.

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 my_plugin_custom_init() {
    // 在这里执行初始化代码
    error_log('我的插件已随 WordPress 初始化!');
}
add_action( 'init', 'my_plugin_custom_init' );

Pochopení a správné využití akčních hooků je klíčem k hluboké integraci pluginů s jádrem WordPress.

Upravit obsah pomocí filtrů

Filtrovací hooky vám umožňují upravovat data, která vytváří WordPress během svého zpracování. Například, pokud chcete změnit text před názvem článku, můžete to provést pomocí těchto hooků. the_title Filtr.

function my_plugin_modify_title( $title, $id = null ) {
    // 只在主循环和单篇文章页为标题添加前缀
    if ( in_the_loop() && is_single() ) {
        return '【推荐】' . $title;
    }
    return $title;
}
add_filter( 'the_title', 'my_plugin_modify_title', 10, 2 );

Zde 10 Je to výchozí priorita.2 To znamená, že tato filtrace funkce přijímá dva parametry. Pomocí tohoto filtru můžete bezpečně změnit téměř všechno, co WordPress vypisuje.

Doporučujeme k přečtení. Od nuly ke jedničce: Postupně vás naučíme základním technikám vývoje pluginů pro WordPress

Strukturovaná architektura pluginů a pokročilé funkce

Když začnete přidávat více funkcí, bude obtížné udržovat všechny kódy v jednom hlavním souboru. Dobrá struktura je standardem při vývoji profesionálních doplňků.

Organizace souborů a adresářů

Správně strukturovaný adresář s pluginy může vypadat následovně:

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.
my-advanced-plugin/
├── my-advanced-plugin.php      // 主插件文件,包含头部和引导代码
├── includes/                   // 主要 PHP 类或函数文件目录
│   ├── class-admin-settings.php
│   ├── class-public-handler.php
├── admin/                     // 仅后台相关文件
│   ├── css/
│   ├── js/
│   └── views/
├── public/                    // 仅前台相关文件
│   ├── css/
│   ├── js/
│   └── views/
├── assets/                    // 共享资源(如图标)
└── languages/                 // 国际化翻译文件

Ve hlavním souboru pluginu musíte pouze zodpovědně načíst tyto podsoubory. K tomu můžete použít vhodné nástroje nebo metody. require_onceinclude_once Používají se příkazy k jejich zavádění. Tato struktura moduluje kód, což usnadňuje týmovou spolupráci a dlouhodobou údržbu.

Vytvořit správní stránku

Mnoho pluginů vyžaduje stránku pro konfiguraci v backendu. WordPress poskytuje funkce pro přidání hlavních nebo podřízených menustránek. Níže je příklad přidání hlavní menustránky.

Funkce my_plugin_add_admin_menu() {
    add_menu_page(
        'Nastavení mého pluginu',   // Název stránky
        'Můj plugin',   // Název menu
        'manage_options',   // Práva
        'my-plugin-slug',   // Slug menu
        'my_plugin_settings_page',   // Funkce pro vykreslení stránky
        'dashicons-admin-generic',   // Ikona
        80   // Pozice menu
    );
}
add_action( 'admin_menu', 'my_plugin_add_admin_menu' );

function my_plugin_settings_page() {
    // Kontrola uživatelských práv
    if ( !current_user_can( 'manage_options' ) ) {
        wp_die( __( 'Nemáte dostatečná práva k přístupu na tuto stránku.' ) );
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <form action="/cs/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段和安全密钥
            settings_fields( 'my_plugin_options_group' );
            do_settings_sections( 'my-plugin-slug' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
    </div>
    <br />&lt;?php
}

Tento kód přidá do postranního panelu v administraci WordPressu nový menuvý příkaz. Po kliknutí na tento příkaz se zobrazí stránka obsahující formulář pro nastavení. Aby to fungovalo opravdu, budete také potřebovat použít API pro nastavení (Settings API), abyste registrovali požadovaná nastavení a možnosti.

Mezinárodníizace a bezpečnostní postupy

Před tím, než nástroj vydáte širšímu okruhu uživatelů, je zásadní ujistit se, že splňuje nejlepší postupy v oblasti internacionalizace a bezpečnosti.

Internationalizace pluginů

Internacionalizace (i18n) umožňuje překládat váš plugin do jiných jazyků. Pro to je třeba využívat funkce pro lokalizaci poskytované WordPressem. Nejlepší praxí je začlenit podporu internacionalizace již na počátku vývoje pluginu.

Nejprve se ujistěte, že jste v hlavičce pluginu definovali Text DomainDomain PathPoté všechny řetězce určené pro uživatele… ()_e()esc_html() Zahrnutí do funkcí typu „wait“.

\n// V kódu pluginu
echo '<p>'\n' . esc_html__( 'Toto je odstavec, který lze přeložit. ', 'my-first-plugin' ) . '</p>';

Poté použijte nástroje, jako je Poedit, k vytvoření požadovaného obsahu. .pot Šablony souborů – překladatelé mohou na základě nich vytvářet dokumenty v různých jazycích. .po.mo Přeložte soubor a umístěte ho na místo dříve definované. /languages V adresáři.

Zvýšení bezpečnosti doplňků

Bezpečnost nesmí být přehlížena. Základními principy jsou: ověřování vstupních dat, escapeování výstupních dat a provádění kontrol oprávnění.
1. Ověření a kontrola oprávnění: Každá funkce, která zpracovává uživatelská data nebo požadavky na pozadí, musí zkontrolovat, zda má aktuální uživatel oprávnění k provedení této operace. Použijte current_user_can()check_admin_referer() Funkce jako…
2. Escape output: Při výstupu jakýchkoli dat (zejména dat od uživatelů nebo z databáze) do HTML, JavaScriptu nebo URL je nutné je unikovat.
– HTML: esc_html(), esc_attr()
– URL: esc_url()
– Pouze v JavaScriptu:wp_json_encode()
3. Bezpečnost databáze: Při interakci s databází WordPressu nikdy nepoužívejte ruční spojování SQL dotazů. Místo toho použijte $wpdb Přípravné výrazy.

    global $wpdb;
    $results = $wpdb->get_results(
        $wpdb->prepare(
            "SELECT * FROM {$wpdb->prefix}my_table WHERE id = %d AND status = %s",
            $user_id,
            $status
        )
    );

Testování a následné odeslání do oficiálního adresáře

Po dokončení vývoje a základních testů na místním počítači je nutné provést komplexní ověření na testovacím webu, který odpovídá prostředí uživatelů.

Pro svůj plugin vytvořte oficiální vydání pomocí systému pro správu verzí. Obvykle je nutné také vytvořit komprimovaný soubor s pluginem. readme.txt Soubor musí být v souladu s oficiálními požadavky WordPressu a obsahovat informace o pluginu, návody k použití, postupy instalace, záznamy o aktualizacích atd. Tento soubor je velmi důležitý pro jeho zobrazení na stránkách WordPress.org.

Když budete připraveni odeslat svůj plugin do oficiálního repozitáře pluginů WordPress, budete potřebovat účet na WordPress.org. Proces odeslání musí být proveden v souladu s pokyny komunity, aby byla zajištěna kvalita kódu, bezpečnost a absence škodlivého obsahu. Po schválení budou vaši pluginy dostupné k hledání a instalaci pro uživatele po celém světě. Nezapomeňte, že váš plugin musí být kompatibilní s aktuální verzí systému WordPress. readme.txt Soubor a něco vhodného… svn Spravujte verze svých pluginů pomocí struktury skladu.

Závěr

Vývoj pluginů pro WordPress začíná pochopením základní architektury systému a postupně se rozvíjí k využívání hookovacího systému, organizaci modulárního kódu a striktnímu dodržování bezpečnostních a internacionalizačních standardů. Od vytvoření jednoduchého souboru až po vývoj složitého pluginu s administrátorskými stránkami závisí každý krok na hlubokém pochopení jádra WordPressu a komunity vývojářů. Dodržování osvědčených postupů (best practices) nejenže zvyšuje stabilitu a bezpečnost vašeho pluginu, ale také usnadňuje jeho údržbu v budoucnu a otevírá vám cestu na globální trh uživatelů WordPressu. Neustálé studium oficiálních příruček a kódu vysoce kvalitních pluginů je klíčem k neustálému zlepšování vašich vývojářských dovedností.

Časté dotazy

Jaké základní znalosti jsou potřebné k vývoji WordPress pluginů pro projekt ###?
Potřebujete mít základní znalosti programovacího jazyka PHP, protože jádro WordPressu a jeho pluginy jsou převážně napsány v PHP. Základní znalosti HTML, CSS a JavaScriptu jsou také velmi užitečné při vytváření uživatelského rozhraní a interaktivních funkcí. Kromě toho pochopení základních konceptů WordPressu, jako jsou tematika (themes), „hooky“ (zásahy do fungování systému), cykly a hierarchie šablon, usnadní vám proces vývoje.

Které soubory musí obsahovat plugin?

Pro nejjednodušší pluginy postačí jediný hlavní PHP soubor, který obsahuje platné informace o tom, že se jedná o WordPress plugin. Pro pluginy o trochu větším rozsahu se však doporučuje použít modulární strukturu – různé funkce by měly být uloženy do samostatných souborů. Například logiku pro zpracování požadavků na straně serveru, logiku pro zobrazení obsahu na straně uživatele, soubory s resursem a soubory určené k internacionalizaci by měly být umístěny do příslušných adresářů. Toto zvyšuje čitelnost a udržovatelnost kódu.

Jak přidat možnosti nastavení pro můj plugin?

Doporučujeme použít WordPress Settings API k přidávání možností nastavení. To zahrnuje také využití… register_setting() Zaregistrujte si možnost a použijte ji. add_settings_section()add_settings_field() Definujte oblasti nastavení a pole a použijte je v zpětných voláních (callback functions) na stránce nabídky pluginu v pozadí. settings_fields()do_settings_sections() Zobrazte formulář. Ačkoli lze odeslání formuláře provést i ručně, API Settings umožňuje automatické zpracování ověřování dat, ukládání a bezpečnostních kontrol.

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

Pro dosažení co nejvyšší kompatibility vždy používejte API a funkce poskytované oficiálně WordPressem a vyhýbejte se nepředepsaným metodám nebo přímému úpravě základních souborů. Přidejte jedinečné předpony ke svým funkcím, třídám a konstantám, abyste zabránili kolizím názvů s jiným kódem. Při ukládání nastavení nebo vytváření databázových tabulek používejte správné předpony tabulek. Také při provádění jakýchkoli operací, které mohou ovlivnit globální stav, zvažte použití filtrovacích hooků, aby ostatní vývojáři mohli upravit chování vašeho pluginu.

Potřebuje můj plugin podporovat vícestránkový režim WordPressu (multi-site mode)?

To závisí na funkcích vašeho pluginu. Pokud váš plugin pracuje s daty souvisejícími se stránkou (např. články, nastavení), bude ve výchozím nastavení fungovat nezávisle na každé stránce v síti více stránek, což obvykle není problém. Pokud však váš plugin potřebuje funkce pro nastavování nebo správu na úrovni celé sítě, budete muset zkontrolovat, zda je vhodný pro použití v prostředí více stránek, a případně použít vhodné řešení. is_multisite()get_current_blog_id() Funkce související s internetem (např.) add_network_option()Je dobrým zvykem zvážit kompatibilitu s více webovými stránkami již v té fázi vývoje, kdy je projekt ještě v počátečním stádiu.