Konečný průvodce vývojem pluginů pro WordPress: vytvořte si vlastní funkce od nuly do jedné.

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

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

Než začnete psát kód, je stabilní a izolované vývojové prostředí prvním krokem k úspěchu. To nejenže ochrání váš produkční web před vlivem testovacího kódu, ale také usnadní proces ladění.

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

Doporučujeme použít místní balíčky serverového softwaru, jako jsou Local by Flywheel, XAMPP nebo MAMP. Tyto nástroje umožňují jednoduchou instalaci kompletního prostředí obsahujícího PHP, MySQL a Apache/Nginx. Ujistěte se, že verze PHP odpovídá požadavkům vaší cílové verze WordPress. Obvykle se doporučuje používat verzi PHP 7.4 nebo vyšší pro lepší výkon a bezpečnostní podporu.

Vytvoření hlavního souboru pro plugin

Každý plugin pro WordPress musí mít hlavní soubor, který slouží jako vstupní bod pro daný plugin. Tento soubor je nutné umístit… wp-content/plugins Umístěte soubor do samostatné složky v adresáři a pojmenujte ho jedinečným názvem. Například, pokud chcete vytvořit plugin s názvem “Zdravice”, můžete složku nazvat „Greetings“. my-first-plugin Přejděte do dané složky a v ní vytvořte hlavní soubor. my-first-plugin.php

Doporučujeme k přečtení. Konečný průvodce vývojem pluginů pro WordPress: vytvořte profesionální plugin od nuly do jedné

Na začátku tohoto souboru musí být obsažena specifická poznámka o hlavičce pluginu, která poskytuje WordPress základní informace o tomto pluginu. Níže je uveden nejzákladnější příklad:

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.
<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的简单插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Jádro pluginu a mechanismus hooků

Podstatou vývoje pluginů pro WordPress je pochopení a využití jeho systému “hooků”. Hooky umožňují vašemu kódu v určitých okamžicích “vložit se” do základního procesu fungování WordPressu, čímž můžete změnit nebo přidat nové funkce, aniž byste museli upravovat samotné základní soubory WordPressu.

Porozumění akčním hookům a filtrovacím hookům

Hooky nástroje se hlavně dělí na dvě kategorie: Akce (Actions) a Filtry (Filters). Akční hooky spouštějí váš kód při nastání určitých událostí, například při zveřejnění článku nebo načtení administrativního rozhraní. Používáte je… add_action() Funkce slouží k načtení („mountování“) dat. Filtrační háčky („filter hooks“) jsou naopak určeny k úpravě dat – umožňují vám změnit jejich hodnoty ještě před tím, než jsou odeslána do databáze nebo do prohlížeče. add_filter() Funkce slouží k montáži.

Například, pokud chcete přidat vlastní text do patra webové stránky, můžete použít wp_footer Tento akční hook:

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Děkujeme, že používáte naše webové stránky!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

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

Mnoho pluginů vyžaduje, aby byly v administračním panelu WordPressu k dispozici stránky pro nastavení. To se obvykle dosahuje jejich připojením („mounting“) k příslušným funkcím administrace. admin_menu Toho lze dosáhnout pomocí akčních háčků (action hooks). Potřebujete definovat funkci, ve které tyto háčky použijete. add_menu_page()add_options_page() Použijte funkce k registraci stránky a definujte další funkci pro výstup HTML obsahu stránky.

Doporučujeme k přečtení. Od nuly: Kompletní průvodce vývojem pluginů pro WordPress a praktické návody.

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单别名
        'myplugin_render_settings_page' // 用于显示页面内容的函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Nastavení mého pluginu</h2>
        <form method="post" action="/cs/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="cs"/></form>
    </div>
    <br />&lt;?php
}

Implementace funkcí pluginů a zpracování dat

Kompletní plugin obvykle musí zpracovávat uživatelské vstupy, ukládat nastavení a komunikovat s databází. WordPress poskytuje výkonné API, které tyto operace zjednodušuje.

Uložit nastavení pomocí API

Manuální zpracování odeslání formulářů a operací s databází je jak náročné, tak i nebezpečné. WordPress API poskytuje standardizovaný a bezpečný způsob registrace, ověřování a ukládání nastavení. Zahrnuje tři klíčové funkce:register_setting()add_settings_section()add_settings_field()

Níže uvedený příklad ukazuje, jak nastavit registraci textového pole:

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 myplugin_settings_init() {
    register_setting( 'myplugin_settings_group', 'myplugin_greeting_text' );

add_settings_section(
        'myplugin_section',
        '基础设置',
        null,
        'myplugin-settings'
    );

add_settings_field(
        'myplugin_field_greeting',
        '问候语',
        'myplugin_field_greeting_render',
        'myplugin-settings',
        'myplugin_section'
    );
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );

function myplugin_field_greeting_render() {
    $value = get_option( ‘myplugin_greeting_text’, ‘你好,世界!’ );
    echo ‘<input type=“text” name=“myplugin_greeting_text” value=“’ . esc_attr( $value ) . ‘” />’;
}

Vytvoření vlastní databázové tabulky

Pro pluginy, které potřebují ukládat komplexní relační data, může být nutné vytvořit vlastní databázové tabulky. To se obvykle provádí při aktivaci pluginu. Budete muset napsat funkci a připojit ji k registračnímu/aktivizačnímu hooku WordPressu. dbDelta() Funkce slouží k provedení SQL příkazů pro vytvoření nebo aktualizaci tabulek a dokáže inteligentně zpracovávat změny v jejich struktuře.

Nejprve si registrujte aktivizační hook v hlavním souboru vašeho pluginu:

register_activation_hook( __FILE__, ‘myplugin_create_database_table’ );

Poté definujte funkci pro vytvoření tabulky:

Doporučujeme k přečtení. Návod k vývoji pluginů pro WordPress: Vytvořte svůj první plugin od nuly.

function myplugin_create_database_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘myplugin_data’;
    $charset_collate = $wpdb->get_charset_collate();

$sql = “CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        email varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;”;

require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
    dbDelta( $sql );
}

Bezpečnost pluginů, internacionalizace a příprava k vydání

Dokončený plugin musí být zabezpečen, lokalizován do požadovaných jazyků a následně normálně zabalen, aby mohl být bezpečně doručen uživatelům nebo odeslán do oficiálního katalogu.

Implementovat osvědčené postupy zabezpečení

Bezpečnost je při vývoji pluginů nejdůležitějším aspektem. Vždy provádějte ověřování (kontrolu formátu) a čištění (odstranění škodlivých částí) uživatelských vstupů. Využívejte funkce poskytované WordPressem. esc_html()esc_attr()sanitize_text_field() Používá se k výstupu nebo zpracování dat. Při provádění databázových dotazů… $wpdb->prepare() Metody pro prevenci útoků typu SQL injection. Současně se používá… current_user_can() Zkontrolujte oprávnění uživatelů a ujistěte se, že pouze autorizovaní uživatelé mohou provádět citlivé operace.

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.

Realizace internacionalizace pluginu.

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 nesmí být psány přímo v kódu, ale musí být obaleny pomocí funkcí pro překlad v WordPressu. Nejčastěji používanou funkcí je… () Použito k zobrazení výsledku překladu.() K získání přeloženého textu, a také… _e() Použito pro přímý výstup překladu.

Ve vašem kódu by to mělo vypadat takto:

$greeting = __( ‘你好,世界!’, ‘my-first-plugin’ );
echo esc_html( $greeting );

_e( ‘设置已保存。’, ‘my-first-plugin’ );

Všimněte si, že druhý parametr funkce překladu, “Text Domain” (textové doménové označení), musí odpovídat tomu, co je definováno v poznámkách na začátku pluginu. Text Domain Úplně shodné. Poté můžete použít nástroje, jako je Poedit, k vytvoření požadovaných souborů. .pot Šablony pro překladatele k vytvoření .po.mo Překládání dokumentů.

Závěr

Vývoj pluginů pro WordPress je proces, při kterém se kreativita přeměňuje na funkční řešení. Základem tohoto procesu je hluboké pochopení jádra WordPressu, zejména jeho systému hooků. Od nastavení prostředí, psaní hlavních souborů, využívání akčních a filtrovacích hooků, přes práci s API pro nastavení a databázi při zpracování dat, každý krok sleduje jasný postup. Až nakonec, díky přísným bezpečnostním postupům a plné podpoře internacionalizace, se váš plugin může stát produktem vhodným k publikování. Po zvládnutí těchto základů můžete zkoumat složitější oblasti, jako je vytváření vlastních typů článků, integrace s REST API a vývoj bloků pomocí nástroje Gutenberg, a tak vytvářet ještě výkonnější a modernější rozšíření pro WordPress.

Časté dotazy

Je nutné být zdatným v PHP, abyste vytvářeli doplňky pro WordPress?

Ano, PHP je hlavním programovacím jazykem používaným při vývoji WordPressu a jeho doplňků. Je nutné ovládat základní syntaxi PHP, funkce, pole (arrayy), koncepty objektového programování a podobně. Zároveň je velmi důležité mít základní znalosti HTML, CSS a JavaScriptu, protože budete pracovat s výstupním zobrazením a interakcí uživatelů.

Jak ladit WordPress plugin, na kterém pracujete?

Doporučujeme zapnout režim ladění (debugging mode) v WordPressu. wp-config.php V dokumentu budou uvedeny následující informace: WP_DEBUG Konstanta je nastavena na trueTímto se všechny chyby, varování a upozornění PHP zobrazí na obrazovce. Současně je možné použít… error_log() Funkce zapisuje informace o ladění do chybového logu serveru, nebo používá nástroje pro vývojáře v prohlížeči k ladění kódu JavaScript na straně klienta.

Jak se můžou předejít konfliktům mezi názvy funkcí v různých doplňcích (pluginech)?

Aby se předešlo konfliktům mezi názvy funkcí, tříd nebo konstant, měli byste vždy používat jedinečné předpony. Nejlepší praxí je použít název vašeho pluginu nebo jeho zkratku jako předponu. Například, pokud je váš plugin nazýván “Awesome Slider”, můžete použít něco jako „ASlider“. as_awesome_slider_ Jako předpona pro všechny vlastní funkce. Pro názvy tříd by se mělo dodržovat stejné pravidlo.

Lze placené doplňky odeslat do oficiálního adresáře doplňků WordPress?

Není to možné. Oficiální repozitář pluginů pro WordPress přijímá pouze pluginy, které splňují podmínky licence GPL a jsou zcela zdarma. Pokud vytváříte placené (vyšší úrovně) pluginy, musíte je distribuovat a prodávat na vlastních webových stránkách. Mnoho placených pluginů však poskytuje bezplatnou verzi, která obsahuje základní funkce, a tyto bezplatné verze mohou být přihlášeny do oficiálního repozitáře jako nástroj pro propagaci a testování jejich placených verzí.