Vývoj WordPress pluginů od základů až po pokročilé znalosti: Vytvořte si svůj první vlastní plugin

Čtení za 2 minuty.
2026-04-19
2026-06-03
2,847
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č jsou pluginy jádrem ekosystému WordPress?

Silná rozšiřitelnost WordPressu do značné míry závisí na jeho systému pluginů. Pluginy umožňují vývojářům přidávat webové stránky jakékoli funkce, od jednoduchých kontaktních formulářů až po složité e-shopové systémy, aniž by bylo nutné měnit samotný základní kód WordPressu. Porozumění vývoji pluginů znamená, že držíte v rukou klíč k přizpůsobení WordPressu podle vašich požadavků. Pluginy fungují podle principu “dohody je lepší než konfigurace” a komunikují s jádrem WordPressu prostřednictvím sady jasně definovaných životních cyklů („life cycle hooks“).

Standardní plugin je v podstatě jeden nebo více modulů, které se nacházejí…/wp-content/plugins/PHP soubory v adresáři musí obsahovat specifické poznámky v úvodu souboru („header“), které popisují daný plugin pro WordPress. Tento modulární design zajišťuje izolaci jednotlivých funkcí a stabilitu celého systému, což usnadňuje bezpečné a kontrolované aktivování, deaktivování a odinstalování pluginů.

Vytvořte si svůj první plugin: Základní struktura

Pro vytvoření pluginu je nejprve nutné vytvořit jeho základní soubory a strukturu. Nejde pouze o napsání kódu, ale také o vytvoření podkladů pro budoucí údržbu a rozšíření pluginu.

Doporučujeme k přečtení. Naučte se od základů vývoje pluginů pro WordPress: vytvářejte vlastní funkce a dosahujte efektivního zisku

Nejprve, ve vašem lokálním vývojovém prostředí WordPress…/wp-content/plugins/V adresáři vytvořte novou složku. Název složky by měl být jedinečný a popisovat funkce daného doplňku – měl by se jednat o anglický název psaný malými písmeny. Například:my-first-greeting-pluginV této složce vytvořte hlavní PHP soubor, jehož název obvykle odpovídá názvu složky, například:my-first-greeting-plugin.php

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.

Záhlaví informací o pluginu

Hlavní soubor pluginu musí začínat určitým blokem komentářů, což je klíčové pro to, aby ho WordPress rozpoznal. Vložte následující kód do svého hlavního PHP souboru:

<?php
/**
 * Plugin Name:       我的第一个问候插件
 * Plugin URI:        https://example.com/my-greeting-plugin
 * Description:       这是一个演示插件,用于在网站页脚添加一句自定义问候语。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-greeting-plugin
 * Domain Path:       /languages
 */

Tento komentář definuje všechny informace, které se zobrazují o pluginu na stránce “Pluginy” v administraci WordPressu.Plugin NameJedná se o povinný položku; vše ostatní je volitelné. Po uložení souboru uvidíte tento nový plugin v seznamu pluginů v administraci WordPress a můžete ho aktivovat stejným způsobem jako ostatní pluginy.

Přidání funkce pomocí akčních háčků

Po aktivaci pluginu zatím nic nedělá. Aby plugin začal fungovat, musíme využít “hooky” (závěsy) v WordPressu. Hooky se dělí na “akce” (Actions) a “filtry” (Filters). Akce vám umožňují spouštět vlastní kód v určitých okamžicích – např. při načtení stránky nebo při publikování článku.

Přidejte pozdrav do patra stránky.

Jedním z běžných požadavků je přidání obsahu do podokna (footer) webové stránky. WordPress to umožňuje.wp_footerTento akční háček umožňuje připojit naši vlastní funkci k tomuto mechanismu.

Doporučujeme k přečtení. Ultimátní průvodce vývojem WordPress pluginů: Vytvořte si svůj první vlastní plugin od nuly

Pod poznámkou v úvodu hlavního PHP souboru přidejte následující kód:

// 声明一个自定义函数,用于输出问候语
function my_greeting_display() {
    echo '<p style="text-align: center; color: #666; padding: 10px;">Ahoj, světě! Vítejte u mého prvního WordPress pluginu.</p>';
}
// 使用 add_action 函数将我们的自定义函数挂载到 wp_footer 钩子上
add_action( 'wp_footer', 'my_greeting_display' );

add_actionFunkce slouží jako most mezi vlastním kódem a jádrem WordPressu. Prvním parametrem je název hooku.‘wp_footer’Druhý parametr je název funkce, který jsme si sami definovali.‘my_greeting_display’Uložte soubor a obnovte webové stránky – poté uvidíte tento pozdravný text v patičce stránky.

Zavedení filtrů zvyšuje flexibilitu.

Akční hooky nám umožňují “něco udělat”, zatímco filtrovací hooky nám umožňují “data upravit”. Umožňují nám tedy změnit data ještě předtím, než jsou použita nebo vypsaná do prohlížeče. Díky tomu je funkce pluginů flexibilnější a lépe konfigurovatelná.

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.

Příklad úpravy nadpisu článku:

Předpokládejme, že chceme automaticky přidávat před názvy všech článků text “【Doporučeno】”. Pro to můžeme použít…the_titleFiltr.

Do hlavního souboru vašeho pluginu přidejte následující novou funkci a filtr:

// 声明一个函数,用于修改文章标题
function my_prefix_post_title( $title, $post_id = null ) {
    // 确保只在主循环且是文章页面添加前缀
    if ( is_single() && in_the_loop() ) {
        $title = '【推荐】' . $title;
    }
    // 必须返回修改后的值
    return $title;
}
// 使用 add_filter 函数,挂载到 the_title 过滤器
add_filter( 'the_title', 'my_prefix_post_title', 10, 2 );

add_filtertřetí parametr10Jde o prioritu – čím menší je číslo, tím dříve se operace provede; čtvrtý parametr…2Znamená to, že něco je předáno do funkce.my_prefix_post_titlePočet parametrů. Funkce filtru musí vrátit upravenou hodnotu, nikoli pouze výstup. To umožňuje vašemu kódu vzájemně spolupracovat s filtry jiných pluginů nebo témat v podobě řetězce.

Doporučujeme k přečtení. Kompletní ovládnutí vývoje pluginů pro WordPress: Vytvoření vlastních funkcí od nuly

Vytvořit stránku pro správu pluginů

Když potřebuje plugin některé volitelné nastavení, která mohou uživatelé upravit, je nutné pro něj vytvořit stránku pro správu v administraci. Toho je dosaženo pomocí API správního menu WordPressu.

Přidat stránku se nastaveními do administrativního panelu

Přidáme jednoduchý hlavní menu do levého navigačního panelu v administraci 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.

V hlavním souboru svého pluginu pokračujte v přidávání následujícího kódu:

// 注册管理菜单
function my_greeting_add_admin_menu() {
    add_menu_page(
        '问候插件设置',       // 页面标题
        '问候插件',           // 菜单标题
        'manage_options',     // 权限(管理员)
        'my-greeting-plugin', // 菜单slug
        'my_greeting_admin_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 菜单图标(WordPress Dashicons)
        80                    // 菜单位置
    );
}
add_action( 'admin_menu', 'my_greeting_add_admin_menu' );

// 定义设置页面的HTML内容
function my_greeting_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( 'my_greeting_options' );
            do_settings_sections( 'my-greeting-plugin' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
        <p>Vítejte na stránce nastavení mého prvního doplňku. V budoucnu zde můžete přidat další možnosti.</p>
    </div>
    <br />&lt;?php
}

add_menu_pageFunkce jsou klíčové pro vytvoření hlavního menu. Po uložení se přihlaste do administrace WordPressu jako administrátor a na levé straně uvidíte nový položku menu s názvem “Přivítací plugin”. Kliknutím na ni se dostanete na stránku s základními nastaveními, které jsme definovali. Toto je první krok při vytváření složitějších funkcí pluginu – v budoucnu zde můžete integrovat další prvky, jako jsou pole pro nastavení, funkce pro ukládání dat a podobně.

Závěr

Tím, že jsme vytvořili jednoduchý plugin pro pozdravy, prošli jsme základními kroky vývoje WordPress pluginů: začali jsme vytvářením základních souborů a hlavičkových informací, a poté jsme použili…add_actionKlíčová slova: „hook“, „kód“, „konkrétní pozice“, „následné použití“add_filterZměňte výstupní obsah tak, aby na závěr byla prostřednictvím API správního menu přidána webová stránka pro konfiguraci pluginu. Tyto čtyři základní stěny – struktura souborů, akční háčky, filtrovací háčky a správní rozhraní – tvoří základ téměř všech WordPress pluginů. Pokud pochopíte a dobře ovládnete tyto koncepty, přejdete od počáteční úrovně k mistrovství a budete moci začít vytvářet složitější a výkonnější vlastní nástroje, čímž skutečně uvolníte plný potenciál WordPressu.

Časté dotazy

Jaká je minimální struktura pluginu ###?
Jeden plugin může obsahovat pouze jediný samostatný PHP soubor. Stačí, aby tento soubor obsahoval platné hlavičkové poznámky určené pro WordPress pluginy (tj.Plugin Name…) a umístěte ho…/wp-content/plugins/V adresáři nebo jeho podadresářích dokáže WordPress tento adresář rozpoznat a zobrazit jej. Samozřejmě, složitější pluginy obvykle organizují svůj kód do více souborů a podadresářů za účelem lepší údržovatelnosti.

Jaký je zásadní rozdíl mezi akčními háčky (action hooks) a filtrovacími háčky (filter hooks)?

Akční háčky slouží k “provádění operací” v určitém okamžiku a nevyžadují, aby vaše funkce nějakou hodnotu vracela; jejich hlavním účelem je spustit určitý kus kódu. Filtrační háčky naopak slouží k “úpravě dat” a vyžadují, aby vaše funkce vždy vrátila hodnotu (obvykle upravenou hodnotu předanou jako vstup), aby data mohla být dále předána v rámci filtračního řetězce. Stručně řečeno: akční háčky něco udělají, zatímco filtrační háčky něco změní.

Jak zajistit, aby můj kód pluginu nekonfliktoval s ostatními pluginy?

Aby se předešlo kolizím názvů funkcí, tříd nebo konstant, je osvědčenou praxí používat jmenné prostory (doporučeno) nebo přidávat všem identifikátorům jedinečné předpony. Například všechny funkce v příkladech v tomto článku používají takové předpony.my_my_greeting_Jako předpona. Od verze PHP 5.3 je používání jmenných prostorů modernějším a komplexnějším přístupem.

Jak provádět ladění při vývoji doplňků (pluginů)?

Nejprve se ujistěte, že ve vašem…wp-config.phpAktivováno v souboru.WP_DEBUGdefine( ‘WP_DEBUG’, true );Nyní můžete začít používat službu Google Assistant.error_log()Funkce zapisuje informace o ladění do chybového logu serveru. Pro kontrolu proměnných lze použít…print_r()var_dump()V kombinaci swp_die()Výstup dat musí být bezpečný na stránce. Kromě toho může výrazně zvýšit efektivitu ladění použití vývojářských nástrojů, jako je Query Monitor.