Kompletní návod k vývoji pluginů pro WordPress: vytvořte si vlastní plugin od nuly do jedné.

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

Pokud chcete rozšířit funkce vašeho WordPress webu, nejsilnějším způsobem je vytvořit vlastní plugin. Ať už to je potřeba pro splnění konkrétních obchodních požadavků, nebo proto, abyste své nápady sdíleli s komunitou, ovládnutí dovedností vývoje pluginů je klíčové pro zvýšení schopností vašeho WordPress projektu. Tento článek vás provede celým procesem vytvoření plně funkčního a standardního WordPress pluginu od začátku.

Vývojové prostředí a základní přípravy

Než začnete psát kód, je nezbytné mít stabilní a efektivní vývojové prostředí. To nejenže zvýší vaši pracovní efektivitu, ale také zajistí, že kód vašeho pluginu nebude mít žádné problémy při budoucím nasazování.

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

Doporučujeme použít software určený k nastavení lokálního serverového prostředí, jako je Local by Flywheel, XAMPP nebo MAMP. Tyto nástroje umožňují jednoduchou instalaci kompletního prostředí obsahujícího Apache/Nginx, MySQL/MariaDB a PHP. Ujistěte se, že verze PHP, kterou používáte, odpovídá minimálním požadavkům vaší plánované verze WordPressu – WordPress obvykle doporučuje konkrétní verze PHP.

Doporučujeme k přečtení. Vývoj pluginů pro WordPress je proces rozšiřování jádra WordPressu.

Pochopení struktury pluginů pro WordPress

Nejzákladnější WordPress plugin může být jediným PHP souborem, avšak dobře strukturovaný plugin obvykle obsahuje více adresářů a souborů. Hlavní soubor pluginu musí obsahovat standardní poznámky na začátku („header comments“), které jsou klíčové pro to, aby WordPress plugin rozpoznal. Typické adresáře pluginu mohou zahrnovat hlavní soubor (např.you-plugin-name.php)、includes/(Používá se pro klíčové funkce.)admin/(Administrátorské rozhraní)public/(Front-end funkce)assets/(CSS, JavaScript, obrázky) a takélanguages/(Mezinárodní 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í plugin.

Začněme tím, že vytvoříme jednoduchý plugin “Hello World”. Tento plugin přidá do postranního panelu administrace webové stránky nový menu položku a na této stránce zobrazí výzvu „Ahoj světě!“ („Hello World!“).

Napsání hlavního souboru pluginu a hlavičkových informací

Nejprve, v rámci WordPressu…wp-content/pluginsVytvořte novou složku v adresáři, napříkladmy-first-pluginV této složce vytvořte soubor s názvemmy-first-plugin.phpSoubor musí obsahovat specifické poznámky o hlavičce pluginu na začátku.

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

Tento komentář poskytuje základní informace o pluginu a WordPress je načte a zobrazí na stránce pro správu pluginů.Text DomainPoužívá se pro internacionalizaci.

Přidat správní menu a funkce

Následně použijeme API WordPressu k přidání správního menu. Pod poznámkou v hlavičce stejného souboru přidejte následující kód:

Doporučujeme k přečtení. Podrobné vysvětlení WooCommerce: kompletní návod k vytvoření profesionálního e-commerce webu od nuly.

// 防止直接访问
defined( 'ABSPATH' ) || exit;

/**
 * 添加管理菜单
 */
function mfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',          // 菜单标题
        'manage_options',   // 权限(管理员)
        'my-first-plugin',  // 菜单slug
        'mfp_display_admin_page', // 显示页面的回调函数
        'dashicons-smiley', // 图标(Dashicons)
        6                   // 菜单位置
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * 显示管理页面的内容
 */
function mfp_display_admin_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p>Ahoj, světě! Toto je moje první stránka s pluginem pro WordPress.</p>
    </div>
    <br />&lt;?php
}

Po uložení souboru se přihlaste do administrace vašeho WordPressu a přejděte na stránku “Příslušenství” (Plugins). Měli byste tam vidět svůj první plugin. Po jeho aktivaci se v levém nabídkovém panelu objeví položka s názvem “Moje příslušenství” (My Plugins). Kliknutím na ni uvidíte výstupní zprávu, kterou jsme vytvořili.

Pokročilý vývoj jádra pluginů

Užitečný plugin musí zpracovávat data, nabízet možnosti a bezpečně komunikovat s jádrem systému WordPress.

Používat akční háčky a filtrovací háčky

Architektura pluginů v WordPressu je založena na „hookech“ (závěsech) a rozděluje se na „actions“ (akce) a „filters“ (filtry). Akce vám umožňují spouštět kód v určitých okamžicích – např. při zveřejnění článku – zatímco filtry vám umožňují upravit data (např. obsah článku) před jejich výstupem.

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.

Například, používáme…wp_footerNa spodní část stránky webového rozhraní („footer“) se zobrazí informace:

function mfp_add_footer_text() {
    echo '<p style="text-align:center;">Děkuji, že jste využili můj první plugin!</p>';
}
add_action( 'wp_footer', 'mfp_add_footer_text' );

Jako další příklad: použití…the_contentFiltr přidává na konci každého článku odstavec s vlastním textem.

function mfp_append_to_content( $content ) {
    if ( is_single() ) {
        $extra_text = '<div class="mfp-note"><em>Tento článek byl vylepšen pomocí “Mého prvního pluginu”.</em></div>';
        $content .= $extra_text;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_append_to_content' );

Vytvořte stránku nastavení pluginu.

Aby uživatelé mohli konfigurovat pluginy, potřebujeme vytvořit stránku nastavení obsahující formulář. To obvykle zahrnuje použití API pro nastavení WordPressu, které umožňuje bezpečné registrování, ukládání a ověřování možností (parametrů).

Doporučujeme k přečtení. Vývoj pluginů pro WordPress: vytvoření vlastních funkčních modulů od nuly do jedné.

Nejprve si zaregistrujte možnost nastavení:

// 在admin_menu钩子之后注册设置
function mfp_register_settings() {
    register_setting(
        'mfp_settings_group', // 选项组
        'mfp_custom_message', // 选项名
        array(
            'type' => 'string',
            'sanitize_callback' => 'sanitize_text_field', // 清理回调函数
            'default' => '这是默认的问候信息。'
        )
    );
}
add_action( 'admin_init', 'mfp_register_settings' );

Poté, v tom, co bylo předtím vytvořeno…mfp_display_admin_pageVe funkci se vytvoří formulář pro uložení tohoto výběru:

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 mfp_display_admin_page() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&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( 'mfp_settings_group' ); // 输出安全字段
            do_settings_sections( 'my-first-plugin' ); // 如果有设置区块,这里输出
            ?>
            <table class="form-table">
                <tr>
                    <th scope="row"><label for="mfp_custom_message">Custom message</label></th>
                    <td>
                        <input name="mfp_custom_message"
                               type="text"
                               id="mfp_custom_message"
                               value="<?php echo esc_attr( get_option( 'mfp_custom_message' ) ); ?>"
                               class="regular-text">
                        <p class="description">Zadejte vlastní zprávu, kterou chcete zobrazit v patičce stránky.</p>
                    </td>
                </tr>
            </table>
            <?php submit_button( '保存更改' ); ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
    </div>
    <br />&lt;?php
}

Vydávání a údržba pluginů

Po dokončení vývoje pravděpodobně budete chtít své výsledky sdílet s ostatními nebo je nasadit do produkčního prostředí. K tomu budou zapotřebí některé další kroky, které zajistí kvalitu a udržovatelnost vašeho pluginu.

Příprava na internacionalizaci a lokalizaci

Aby váš plugin mohl být používán uživateli po celém světě, je nutné provést přípravu na internacionalizaci (i18n). To znamená, že všechny textové stránky určené pro uživatele by měly být zabaleny pomocí funkcí pro překlad v WordPressu.

Změňte všechny předchozí výstupní texty například následovně:

echo '<p>' . esc_html__( '感谢使用我的第一个插件!', 'my-first-plugin' ) . '</p>';

Používejte to v popisu pluginu a ve funkcích.__()_e()Poté můžete použít nástroje, jako je Poedit, k vytvoření těchto funkcí..potŠablonový soubor, který mají překladatelé použít k vytvoření překladu..po.moJazykové soubory.

Bezpečnost kódu a optimalizace výkonu

Bezpečnost je velmi důležitá. Vždy provádějte ověřování (validation) a čištění (sanitization) uživatelského vstupu, stejně jako escapeování (escaping) výstupních dat. Pro prevenci podvodných požadavků ze strany uživatelů (cross-site requests – CSRF) používejte náhodné hodnoty (nonces) poskytované WordPressem, a pro ověřování oprávnění uživatelů využívejte funkce určené k kontrole jejich schopností (capability checks).

Z hlediska výkonu je důležité rozumně využívat funkci „Transients API“ v WordPressu k ukládání výsledků náročných dotazů do mezipaměti, aby se při každém načtení stránky nemusely opakovat složité operace s databází. Zároveň je nutné správně uspořádat pořadí vykonávání skriptů a stylů (použít vhodné algoritmy pro jejich spouštění).wp_enqueue_scriptwp_enqueue_style…) a určete závislosti.

Závěr

Vývoj pluginů pro WordPress je proces přeměny nápadů na funkční řešení, který vyžaduje, aby vývojáři byli obeznámeni s PHP, základními API WordPressu a dobrými postupy softwarového inženýrství. Od nastavení prostředí, psaní základních souborů pluginů, přes využití hooků k rozšíření funkcí, vytváření uživatelských rozhraní pro nastavení až po přípravu k publikování, je každý krok velmi důležitý. Dodržování bezpečnostních pravidel kódování, příprava na internacionalizaci a optimalizace výkonu udělají váš plugin profesionálnějším a spolehlivějším. Neustálé studium dokumentace WordPress Codex a dalších vývojářských zdrojů je klíčem k neustálému zlepšování dovedností v vývoji pluginů.

Časté dotazy

Jaké základní znalosti jsou potřebné k vývoji pluginů pro WordPress?

Potřebujete mít solidní základy programování v PHP, protože WordPress a jeho pluginy jsou převážně napsány v PHP. Zároveň je nutné mít základní znalosti HTML, CSS a JavaScriptu, abyste mohli pracovat s front-end rozhraním a interakcemi uživatelů. Porozumění základním konceptům databáze MySQL (např. dotazům) by také bylo užitečné, avšak funkce WordPressu…WP_QueryVětšina operací s databází je již zabalená (tj. předvedena v formě konkrétních funkcí nebo metod).

Jak ladit můj WordPress plugin?

Nejprve se ujistěte, že…wp-config.phpAktivováno v souboru.WP_DEBUGWP_DEBUG_LOGTo zaznamená chyby, upozornění a varování PHP do…wp-content/debug.logSoubor je uložen v počítači a není zobrazen na stránce. Dále lze použít…error_log()Funkce vypisuje vlastní laděcí informace. Kromě toho jsou konzola a kartice „Síť“ v nástrojích pro vývojáře prohlížečů zásadní pro ladění JavaScriptu a AJAX požadavků.

Jak je můj plugin kompatibilní s tématem nebo jinými pluginy?

Pro maximální zajištění kompatibility vždy používejte oficiální API a funkce poskytované WordPressem a vyhýbejte se neveřejným funkcím nebo přímému manipulování s databází. Pro své funkce, třídy a proměnné používejte jedinečné předpony (stejně jako v našem příkladu).mfp_…) za účelem zabránění konfliktů mezi názvy. Pokud je to možné, poskytněte filtry.apply_filtersUmožňujete ostatním vývojářům upravovat chování vašeho pluginu a s opatrností spouštíte své vlastní rozšiřitelné akce (extensible actions).do_action)。

Jak bych měl distribuovat a prodávat své pluginy?

Pro bezplatné pluginy je nejjednodušší způsob jejich odeslání do oficiálního adresáře WordPress pluginů. K tomu je potřeba dodržovat příslušné pokyny a ujistit se, že kód splňuje stanovené standardy. U pokročilých (placených) pluginů můžete jejich prodej provádět na vlastní webové stránce prostřednictvím digitálních obchodů, jako je Easy Digital Downloads nebo WooCommerce. Bez ohledu na způsob je klíčem k úspěchu poskytování jasných dokumentací, včasné podpory při aktualizacích a bezpečného kódu.