Od nuly: Kompletní průvodce vývojem WordPress pluginů a praktické tutoriály

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

Klíčové koncepty vývoje pluginů pro WordPress

Než se pustíte do detailního studia kódu, je zásadní pochopit základní principy WordPress pluginů. WordPress plugin je v podstatě PHP skript nebo sada skriptů, která rozšiřuje nebo upravuje funkce jádra WordPress pomocí standardního systému hooků. Jeho klíčová vlastnost spočívá v tom, že dokáže bezproblémově spolupracovat s běžným provozem WordPress, aniž by bylo nutné přímo měnit jeho základní soubory.

Kerní soubor je PHP soubor, který obsahuje specifické poznámky v hlavičce souboru (file header). Tato hlavička slouží k tomu, aby WordPress rozpoznal daný plugin. Například, základní hlavní soubor pluginu… my-first-plugin.php Na začátku musí být obsaženy následující informace:

<?php
/**
 * Plugin Name: 我的第一个插件
 * Description: 这是一个用于演示的简单WordPress插件。
 * Version: 1.0.0
 * Author: 你的名字
 */

Jakmile bude tento soubor umístěn… /wp-content/plugins/ V adresáři bude stránka “Příslušenství” v administraci WordPressu tento plugin rozpoznat a zobrazit.

Doporučujeme k přečtení. Kompletní průvodce vývojem temát pro WordPress: Vytvoření profesionálních webových temát od nuly

Mechanismus fungování pluginů závisí na dvou klíčových konceptech: akčních háčcích (Action Hooks) a filtrovacích háčcích (Filter Hooks). Akční háčci vám umožňují vložit vlastní kód v určitých okamžicích během provádění WordPressu – například po zveřejnění článku nebo před načtením šablon stylů v hlavě stránky. K tomu slouží funkce. add_action() Můžete svou funkci “nasadit” („mount“) na tyto „hooky“. Filtrační hooky vám umožňují upravit data před tím, než jsou použita nebo uložena do databáze – například můžete změnit obsah článku, jeho nadpis nebo abstrakt. To se provádí pomocí… add_filter() Funkce jsou implementovány pomocí speciálních „hook“ systémů. Porozumění a obratné využívání tohoto systému je klíčovým krokem při přechodu z uživatele WordPressu na vývojáře.

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í funkční plugin.

Začněme s konkrétním a užitečným příkladem: vytvoření malého pluginu, který automaticky přidává informace o autorských právech na spodní část stránky článků na webu. Tento proces zahrnuje vytvoření samotného pluginu, použití filtrovacích hooků a nastavení základních parametrů pluginu.

Nejprve ve vašem lokálním nebo testovacím prostředí… /wp-content/plugins/ V adresáři vytvořte novou složku a pojmenujte ji… my-copyright-noticeV této složce vytvořte hlavní soubor pluginu. my-copyright-notice.phpA zapište následující kód:

&lt;?php
/**
 * Plugin Name: 文章版权声明
 * Description: 自动在文章内容末尾附加自定义版权声明。
 * Version: 1.0.0
 * Author: 开发者
 */

// 防止直接访问
if ( ! defined( &#039;ABSPATH&#039; ) ) {
    exit;
}

/**
 * 在文章内容后追加版权声明
 */
function mycn_add_copyright_to_content( $content ) {
    // 确保只在主循环的单篇文章中显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $site_url = get_site_url();
        $current_year = date( &#039;Y&#039; );
        // 构建版权文本,这里用 2026 作为示例,实际开发可动态获取
        $copyright_text = sprintf(
            &#039;<p><em>© 2026 %s. Tento text byl vytvořen… <strong>%s</strong> Originální obsah – při přepisování prosím uveďte zdroj.</em></p>',
            esc_html( get_bloginfo( 'name' ) ),
            esc_url( $site_url )
        );
        $content .= $copyright_text;
    }
    return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器
add_filter( 'the_content', 'mycn_add_copyright_to_content' );

Tento plugin demonstruje základní použití filtrů.mycn_add_copyright_to_content Funkce přijímá obsah článku. $contentProstřednictvím podmínekového ověřování zajistíme, že informace o autorských právech budou přidány pouze na stránce konkrétního článku a pouze v rámci hlavního dotazu. Poté změníme obsah a vrátíme nový výsledek.add_filter( ‘the_content’, ‘mycn_add_copyright_to_content’ ) Tento řádek kódu dokončil vložení požadované funkce.

Přidat pro plugin správní rozhraní a možnosti

Zralý plugin obvykle umožňuje uživatelům provádět konfiguraci. Toho je dosaženo vytvořením stránek s nastavení v administraci WordPressu. Pro výše zmíněný plugin určený k zobrazení autorských informací přidáme stránku s nastavení, na které uživatelé budou moci upravit text týkající se autorských práv.

Doporučujeme k přečtení. Jak vytvořit WordPress téma s jedinečnými funkcemi a výjimečným vzhledem, které splní profesionální požadavky?

Nejprve potřebujeme vytvořit funkci pro registraci položky nastavení menu. To se obvykle provádí při inicializaci administrátora.

Upravte to tak, aby to znělo správně. my-copyright-notice.php Do souboru přidejte následující kód:

// 添加管理员菜单
function mycn_add_admin_menu() {
    add_options_page(
        '版权声明设置', // 页面标题
        '文章版权',     // 菜单标题
        'manage_options', // 权限
        'my_copyright_notice', // 菜单slug
        'mycn_settings_page_html' // 回调函数,用于输出页面HTML
    );
}
add_action( 'admin_menu', 'mycn_add_admin_menu' );

// 初始化插件的设置
function mycn_settings_init() {
    // 注册一个新的设置项到 ‘mycn_settings’ 组
    register_setting( ‘mycn_settings’, ‘mycn_copyright_text’ );

// 在 ‘mycn_settings’ 组内添加一个设置区块
    add_settings_section(
        ‘mycn_settings_section’,
        ‘自定义版权文本’,
        null, // 可选的区块描述回调函数
        ‘mycn_settings’
    );

// 向区块中添加字段
    add_settings_field(
        ‘mycn_copyright_field’,
        ‘版权声明’,
        ‘mycn_copyright_field_html’,
        ‘mycn_settings’,
        ‘mycn_settings_section’
    );
}
add_action( ‘admin_init’, ‘mycn_settings_init’ );

// 设置字段的HTML输出
function mycn_copyright_field_html() {
    $option = get_option( ‘mycn_copyright_text’, ‘© 2026 [site_name]. 本文原创自 [site_url]。’ );
    ?&gt;
    <textarea name="‘mycn_copyright_text’" rows="‘5’" cols="‘50’"><?php echo esc_textarea( $option ); ?></textarea>
    <p class="“description”">Podporují se zkratky: [site_name] název webové stránky, [site_url] adresa webové stránky.</p>
    <?php
}

// 设置页面的HTML结构
function mycn_settings_page_html() {
    // 检查用户权限
    if ( ! current_user_can( ‘manage_options’ ) ) {
        return;
    }
    ?>
    <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( ‘mycn_settings’ );
            do_settings_sections( ‘mycn_settings’ );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
    </div>
    <br />&lt;?php
}

Dále potřebujeme upravit to, co jsme udělali předtím. mycn_add_copyright_to_content Funkce, která využívá možnosti uložené uživatelem a nahrazuje v nich krátké kódy.

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 mycn_add_copyright_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $text = get_option( ‘mycn_copyright_text’, ‘© 2026 [site_name]. 本文原创自 [site_url]。’ );
        $text = str_replace(
            array( ‘[site_name]’, ‘[site_url]’ ),
            array( esc_html( get_bloginfo( ‘name’ ) ), esc_url( get_site_url() ) ),
            $text
        );
        $content .= ‘<p><em>’ . wp_kses_post( $text ) . ‘</em></p>’;
    }
    return $content;
}

Nyní mohou uživatelé v záložce “Nastavení” v administraci WordPressu vidět podzáložku “Autorská práva k článkům” a mohou si také vlastní text pro prohlášení o autorských právech nastavit.

Nejlepší postupy pro bezpečnost, ladění a internacionalizaci pluginů

Při vývoji pluginu určeného k použití ostatními je nutné zohlednit bezpečnost, stabilitu a udržovatelnost. Níže jsou uvedeny některé klíčové osvědčené postupy.

Bezpečnost: Nikdy nespoléhejte na data vložená uživateli. Všechna data pocházející od uživatelů, z databází nebo třetích API musí být před zobrazením na obrazovce, uložením do databáze nebo použitím pro operace s soubory řádně označena („escaped“) nebo očištěna. WordPress poskytuje řadu bezpečnostních funkcí, např. pro zpracování HTML kódu. esc_html()Pro použití u URL esc_url()Pro použití v HTML atributech esc_attr()Používejte to, když je potřeba povolit některé bezpečné HTML značky. wp_kses_post()wp_kses()Na začátku pluginu je nutné použít… if ( ! defined( ‘ABSPATH’ ) ) exit; To zabrání přímému přístupu k souborům.

Doporučujeme k přečtení. Kompletní průvodce vývojem WordPress pluginů: Od nuly až po jejich nasazení v praxi

Debugging: Aktivováno během vývojového procesu. WP_DEBUG Konstanty jsou velmi důležité. Ve vašem… wp-config.php Nastavení v souboru define( ‘WP_DEBUG’, true);Tímto se všechny chyby, varování a upozornění PHP zobrazí na obrazovce (pouze v vývojovém prostředí). Kromě toho se to používá v kombinaci s dalšími nástroji. error_log() Funkce nebo ladící nástroje, jako je Query Monitor, vám mohou velmi pomoci při sledování proměnných a SQL dotazů.

Příprava na internacionalizaci (i18n): Aby váš plugin mohl být používán uživateli po celém světě, všechny textové stránky určené pro uživatele by měly být připraveny pro překlad. To znamená, že neměly by být použity pevně zakódované texty v čínštině nebo angličtině, ale místo toho by měly být využity funkce pro překlad v WordPressu.

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.

Například, změňte předchozí informace o pluginu na následující:

/**
 * Plugin Name: 文章版权声明
 * Description: 自动在文章内容末尾附加自定义版权声明。
 * Version: 1.0.0
 * Author: 开发者
 * Text Domain: my-copyright-notice
 */

V kódu označte texty, které je možné přeložit, pomocí speciálních značek. __( ‘string’, ‘text-domain’ )_e( ‘string’, ‘text-domain’ ) Funkční obaly (function wrappers). Například při nastavování funkcí na stránce:

function mycn_settings_page_html() {
    if ( ! current_user_can( ‘manage_options’ ) ) {
        return;
    }
    ?&gt;
    <div class="“wrap”">
        <h1><?php echo esc_html( __( ‘版权声明设置’, ‘my-copyright-notice’ ) ); ?></h1>
        ...
    </div>
    <br />&lt;?php
}

Poté můžete použít nástroje, jako je Poedit, k extrakci těchto řetězců a jejich následnému vytvoření. .pot Šablonový soubor, který mají překladatelé použít k vytvoření překladu. .po/.mo Jazykové soubory.

Závěr

Vývoj pluginů pro WordPress je proces, při kterém se kreativní nápady proměňují v funkční prvky, které jsou pak hluboce integrovány do nejpopulárnějšího systému pro správu obsahu na světě. Začněte porozuměním základnímu principu hooků („hooků“), které jsou klíčovým elementem tohoto systému, a rychle se naučíte vytvářet jednoduché funkční pluginy. Vytvoření uživatelského rozhraní a nastavitelných parametrů pro váš plugin zvyšuje jeho profesionální vzhled a praktičnost. Dodržování osvědčených postupů v oblasti bezpečnosti, laditelnosti a internacionalizace je zásadní pro to, aby byl plugin stabilní, bezpečný a snadno distribuovatelný. Nezapomeňte, že nejlepším způsobem učení je praktická práce – začněte s konkrétním požadavkem a postupně vyvíjejte a vylepšujte svůj plugin.

Časté dotazy

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

Potřebujete mít solidní základy programování v PHP, protože pluginy jsou většinou napsány v PHP. Kromě toho je nutné mít základní znalosti HTML, CSS a JavaScriptu pro vytváření front-end výstupu a správu rozhraní. Pochopení základní architektury WordPressu, jako jsou tematika, typy článků, kategorie, a zejména systémy akcí a filtrů, je nezbytné.

Jak začít ladit nefunkční plugin?

Nejprve, ve vašem… wp-config.php Aktivováno v souboru. WP_DEBUGWP_DEBUG_LOGTímto se chybové zprávy zaznamenají do souboru protokolů (log file), místo aby byly zobrazeny návštěvníkům. Dále se ujistěte, že je váš plugin aktivován. Poté prověřte syntaxi kódu a ujistěte se, že všechna názva funkcí, názvy hooků a cesty k souborům jsou správné. var_dump()error_log() Zobrazte hodnoty klíčových proměnných, nebo nainstalujte profesionální WordPressový nástroj pro ladění, jako je Query Monitor, který vám pomůže problémy odhalit.

Kde by měl být můj plugin umístěn?

Váš plugin musí být umístěn do adresáře instalace WordPress. /wp-content/plugins/ Ve složce. Můžete přímo v této složce vytvořit soubor v formátu PHP (vhodný pro minimalistické pluginy), ale standardnější postup je vytvořit pro svůj plugin samostatnou složku a umístit do ní hlavní soubor a další zdrojové soubory (např. JS, CSS, obrázky). Názvy složky a hlavního PHP souboru by měly být jedinečné, aby nedošlo ke konfliktům s jinými pluginy.

Jak odeslat svůj plugin do oficiálního adresáře WordPress pluginů?

Nejprve si musíte zaregistrovat účet na stránkách WordPress.org a následně odeslat svůj plugin. Kód vašeho pluginu musí splňovat oficiální specifikace a standardy, včetně požadavků na bezpečnost, absence škodlivého kódu a přítomnost vhodných poznámek v souborech (např. v hlavičkách souborů). Je také nutné poskytnout platný… readme.txt Soubor splňuje oficiální požadavky na formát. Po odeslání bude váš plugin posouzen manuálně týmem specialistů na kontrolu. Tento proces může trvat několik týdnů. Po úspěšné kontrole bude váš plugin dostupný k hledání a instalaci uživatelům po celém světě.