Od nuly: Základní kroky a osvědčené postupy při vývoji pluginů pro WordPress

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

Od nuly: Základní kroky a osvědčené postupy při vývoji pluginů pro WordPress

Vývoj pluginů pro WordPress je skvělým způsobem, jak rozšířit funkce webových stránek vytvořených pomocí tohoto redakčního systému. Vytvářením vlastních pluginů mohou vývojáři přidat webovým stránkám jedinečné funkce, aniž by bylo nutné měnit jádro kódu WordPressu. Tím se nejen zvyšuje flexibilita webových stránek, ale také je zajištěno, že při aktualizacích jádra WordPressu budou přizpůsobené funkce fungovat bezpečně a stabilně. Dobře strukturovaný plugin pro WordPress dodržuje určitou strukturu adresářů, standardy kódování a API WordPressu.

Tento článek vás provede celým procesem od vytvoření prvního souboru plug-inu až po jeho bezpečné zveřejnění, a pokrývá klíčové koncepty, nástroje a osvědčené postupy, které je nutné znát během vývoje.

Doporučujeme k přečtení. Kompletní průvodce vývojem pluginů pro WordPress: vytvořte kvalitní rozšíření pro WordPress od nuly do jedné.

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

Před napsáním jakéhokoli kódu je velmi důležité vytvořit vhodné vývojové prostředí. Doporučujeme použít lokální vývojové nástroje, jako jsou Local by Flywheel, XAMPP nebo MAMP, které umožňují rychle nastavit prostředí obsahující PHP, MySQL a webový server. Kromě toho jsou nezbytné i editor kódu (např. VS Code, PhpStorm) a nástroje pro ladění (např. Query Monitor, Debug Bar).

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

Nejzákladnější formou WordPress pluginu je soubor, který se nachází v adresáři `wp-content/plugins`. /wp-content/plugins/ PHP soubory v adresáři. Hlavička hlavního souboru pluginu musí obsahovat standardní poznámky s informacemi o pluginu – to je základ pro to, aby WordPress plugin rozpoznal a spravoval.

Vytvořte něco s názvem… my-first-plugin.php Soubor „“ a zadejte následující obsah:

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

Uložte tento soubor do… /wp-content/plugins/my-first-plugin/ Vložte soubor do dané složky a poté se přihlaste do administrace WordPressu na stránce “Příslušenství” (Plugins). Tam uvidíte tento plugin a budete moci ho aktivovat. I když zatím nemá žádné funkce, jeho struktura je již hotová.

Katalog pluginů a organizace souborů

S přibývajícími funkcemi se jednotlivé soubory stávají obtížně udržovatelnými. Dobře strukturovaný adresář plug-inů obvykle zahrnuje následující části:
* 主插件文件:plugin-name.php
* includes/ Obsah: Obsahuje soubory s klíčovými funkcemi nebo třídami.
* admin/ Obsah: Obsahuje kód související s backendem, CSS a JavaScript.
* public/ Obsah: Obsahuje kód, CSS a JavaScript související s frontendem.
* assets/ Obsah: Slouží k uložení obrázků, souborů se šablonami a skriptů.
* languages/ Katalog: Slouží k uložení souborů s mezinárodními překlady (.pot, .po, .mo).
* uninstall.php Soubor: Možnosti pro čištění databáze při odstranění doplňku.

Doporučujeme k přečtení. Kompletní průvodce vývojem pluginů pro WordPress: od začátků až po praktické příklady.

Core development concepts and technologies

Podstatou vývoje pluginů pro WordPress je pochopení a obratné používání API (Application Programming Interface), které platforma poskytuje. Mezi hlavní nástroje patří akční háčky (Action Hooks), filtrovací háčky (Filter Hooks) a zkratky kódu (Shortcodes).

Ovládnutí použití akčních háčků

Akční háčky vám umožňují “vložit” svůj vlastní kód v určitéch časech během provádění WordPressu. add_action() Funkce umožňuje připojit vaši vlastní funkci k určitému „hooku“ (připojovacímu bodu).

Například následující kód přidá na vrchol všech stránek řádek vlastního meta značení:

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_add_custom_meta() {
    echo '<meta name="my-custom-meta" content="value">';
}
add_action( 'wp_head', 'myplugin_add_custom_meta' );

Dalším běžným příkladem je provádění nějakých inicializačních operací při aktivaci pluginu, například vytvoření tabulek v databázi. K tomu je potřeba funkci připojit („mount“) k odpovídajícím systémovým službám nebo komponentám. register_activation_hook Na háčku.

Upravení obsahu pomocí filtrů

Filtrovací háčky slouží k úpravě dat, která WordPress zpracovává během svého fungování. Můžete je využít k provedení různých změn v těchto datech. add_filter() Funkce slouží ke změně textového obsahu, hodnot možností a podobně. Filtrační funkce musí mít návratovou hodnotu.

Následující příklad automaticky přidá na konec obsahu článku určitý vlastní text:

Doporučujeme k přečtení. Kompletní průvodce vývojem pluginů pro WordPress: vytvořte svůj první funkční plugin od nuly do jedné.

function myplugin_modify_post_content( $content ) {
    if ( is_single() ) {
        $custom_text = '<p><em>Děkujeme, že jste si tento článek přečetli!</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_modify_post_content' );

Vytváření a správa zkratek

Shortcodes umožňují uživatelům snadno vkládat dynamický obsah generovaný pluginy do článků, stránek nebo malých nástrojů. add_shortcode() Funkce může registrovat nový zkrácený kód.

Zaregistrujte si název… [greeting] Je to zkrácený kód, který může zobrazovat různá pozdravy v závislosti na čase:

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 myplugin_greeting_shortcode( $atts ) {
    $hour = date( 'G' );
    $greeting = ( $hour ? 'Dobré ráno!' : ( ($hour) &lt; 18 ) ? &#039;下午好!&#039; : &#039;晚上好!&#039; );
    return &#039;<div class="greeting">'`. esc_html($greeting).`'</div>'php
add_shortcode('greeting', 'myplugin_greeting_shortcode');

Bezpečnost pluginů a správa dat

Vytvoření bezpečného pluginu je prvním krokem při ochraně webových stránek a dat uživatelů. To zahrnuje ověřování vstupních dat, escapeování výstupních dat, kontrolu oprávnění a bezpečné zpracování dat.

Implementace ověřování dat a jejich escapeování

Nikdy nesmíte důvěřovat žádným vstupním údajům od uživatelů. Před uložením dat do databáze nebo zobrazením je v prohlížeči je nutné je ověřit a předat je ve správné formě (tzv. „escape“).

  • Verifikace: Použití sanitize_text_field(), sanitize_email(), intval() Funkce jako tyto slouží k očištění uživatelského vstupu.
  • Escape: Při výstupu dat do HTML, JavaScriptu nebo URL použijte odpovídající funkci pro escape, například esc_html(), esc_js(), esc_url()

Například: Bezpečné zpracování a výstup uživatelského jména odeslaného prostřednictvím formuláře.

$user_input = $_POST['username'] ?? ''; // 使用空合并运算符提供默认值
$clean_username = sanitize_text_field( $user_input );
echo '你好,' . esc_html( $clean_username );

Použití WordPress Option API

Pro jednoduché nastavení, která je třeba uložit (jako jsou přepínače, text atd.), je vhodné použít WordPress Option API. Poskytuje add_option(), get_option(), update_option()delete_option() Funkce jako „wait“ umožňují bezpečné ukládání dat… wp_options V tabulce.

Vytvořte nastavení pro plugin a získejte je:

// 保存一个选项
update_option( 'myplugin_setting_color', '#336699' );

// 获取一个选项,如果不存在则使用默认值
$color = get_option( 'myplugin_setting_color', '#000000' );

Vytvoření vlastní databázové tabulky

Když potřebuje plugin ukládat složitá relační data, může být nutné vytvořit vlastní databázové tabulky. To obvykle musí být provedeno při aktivaci pluginu a musí být v souladu s předpisy databázového schématu WordPress.

my-first-plugin.php V tomto kódu byla funkce na vytvoření tabulky přidána do hooku určeného k aktivaci pluginů:

function myplugin_create_custom_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'myplugin_items'; // 使用 $wpdb->prefix 确保表前缀正确
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name 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 );
}
register_activation_hook( __FILE__, 'myplugin_create_custom_table' );

Vytvoření administrativního rozhraní pro správu pluginů

Vytvoření intuitivní stránky pro nastavení vašeho pluginu v zázemí je klíčem k poskytnutí dobrého uživatelského zážitku. WordPress nabízí řadu API, které usnadňují proces vytváření správních menu, stránek pro nastavení a formulářů.

Přidat správní menu a podmenü

Použití add_menu_page()add_submenu_page() Funkce umožňují přidat menu položky do postranního panelu v administraci WordPressu pro váš plugin.

Níže uvedený kód obsahuje přidání vrchního menu “Moje pluginy” a podmenu “Nastavení”:

function myplugin_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'myplugin-dashboard',   // 菜单 Slug
        'myplugin_dashboard_page', // 回调函数,用于输出页面内容
        'dashicons-admin-generic', // 图标
        30                      // 菜单位置
    );

    // 添加子菜单
    add_submenu_page(
        'myplugin-dashboard',   // 父菜单 Slug
        '插件设置',             // 页面标题
        '设置',                 // 菜单标题
        'manage_options',       // 权限
        'myplugin-settings',    // 子菜单 Slug
        'myplugin_settings_page' // 回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

// 定义“仪表盘”页面的回调函数
function myplugin_dashboard_page() {
    echo '<div class="wrap"><h1>Můj pluginový panel přehledu</h1></div>';
}

// 定义“设置”页面的回调函数
function myplugin_settings_page() {
    echo '<div class="wrap"><h1>Nastavení mého pluginu</h1></div>';
}

API pro integrační nastavení – vytvoření formulářů

Nastavení API v WordPressu poskytuje bezpečný a standardizovaný způsob pro vytváření, ověřování a ukládání nastavení formulářů. Zahrnuje registraci nastavení, přidávání oblastí nastavení a polí.

Níže je jednoduchý příklad vytvoření nastavovací stránky obsahující textové pole:

function myplugin_settings_init() {
    // 注册一个新的设置项 “myplugin_settings”
    register_setting( 'myplugin_settings_group', 'myplugin_settings' );

    // 添加一个新的设置区域
    add_settings_section(
        'myplugin_section_basic',
        '基础设置',
        null, // 区域描述的回调函数,这里不需要
        'myplugin-settings' // 页面 Slug
    );

    // 在区域内添加一个字段
    add_settings_field(
        'myplugin_field_api_key',
        'API 密钥',
        'myplugin_field_api_key_callback', // 渲染字段 HTML 的回调函数
        'myplugin-settings',
        'myplugin_section_basic'
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

// 字段的回调函数
function myplugin_field_api_key_callback() {
    $options = get_option( 'myplugin_settings' );
    $value = $options['api_key'] ?? '';
    echo '<input type="text" name="myplugin_settings[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

// 修改之前的设置页面回调函数,以输出表单
function myplugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Nastavení mého pluginu</h1>
        <form action="/cs/options.php/" method="post" 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
}

Závěr

Vývoj WordPress pluginů začíná pochopením základní struktury systému, postupným proniknutím do jádra API a zabezpečení, a nakonec výstavbou kompletního uživatelského rozhraní. Klíčovým faktorem je dodržování kódovacích standardů a osvědčených postupů WordPressu – např. správné používání „hooků“, důsledné zabezpečení dat, využití vestavěných API pro správu nastavení a další funkce. Vývoj začíná vytvořením jednoduchého souboru s poznámkami k hlavičce pluginu, následným přidáváním akcí, filtrů a „shortcodes“, až po správu databáze a administrativního rozhraní. Každý krok je postaven na silném a stabilním rámci WordPressu. Díky systematickému studiu a praktickému procvičování těchto postupů budete schopni vytvářet funkční, bezpečné, spolehlivé a snadno udržovatelné WordPress pluginy, čímž přispějete k rozvoji rozsáhlého globálního WordPress ekosystému.

Časté dotazy

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

Pro vývoj pluginů pro WordPress je nutné ovládat programovací jazyk PHP, neboť jádro pluginů je napsáno v PHP. Kromě toho je potřeba mít základní znalosti HTML, CSS a JavaScript pro vytváření uživatelského rozhraní a interakcí. Nejdůležitější je však dobře znát základní koncepty WordPressu, jako jsou „hooky“ (Actions a Filters), cykly (The Loop), struktura šablon a struktura databáze WordPressu.

Jak ladit můj WordPress plugin?

Nejprve, wp-config.php V souboru zapněte režim ladění WordPressu. WP_DEBUG Konstanta je nastavena na trueTo zobrazí chyby a varování PHP na obrazovce. Dále lze použít… error_log() Funkce zapisuje informace o ladění do chybového logu serveru. Kromě toho je instalace profesionálních laděcích doplňků, jako je Query Monitor, nepostradatelným nástrojem během vývoje – umožňují v reálném čase sledovat podrobné údaje o databázových dotazech, provedení hooků, načítání skriptů a dalších procesech.

Jak můj plugin podporovat více jazyků ( internacionalizaci)?

WordPress využívá technologický rámec GNU gettext pro zajištění internacionalizace (i18n). Nejprve se ve kódu pluginů pro všechny textové stránky, které je třeba přeložit, použije speciální značky určené k identifikaci těchto textových úseků. ()_e() Zabalte funkci čekání („waiting function“) do nějakého obalu („wrapper“) a připravte ji k použití. () Funkce určuje textový domén (Text Domain), který je definován v části hlavy pluginu. Následně se pomocí nástrojů, jako je Poedit, prohledá zdrojový kód pluginu a je vytvořen požadovaný výstup. .pot Šablony souborů a na základě nich vytváření verzí pro různé jazyky. .po A po kompilaci .mo Soubor umístěte do pluginu. /languages/ V adresáři. Nakonec použijte… load_plugin_textdomain() Překlad textu „Funkce načítání“: „Function loading“.

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

Než předložíte plugin do oficiálního katalogu, musíte se ujistit, že plně splňuje oficiální normy a pokyny pro vývoj pluginů. Potřebujete mít účet na WordPress.org a poté vyplnit formulář na stránce určené k odeslání pluginů. Kontrolní tým prověří bezpečnost vašeho kódu, licenci (musí být kompatibilní s licencí GPL), kvalitu kódu, dokumentaci a kompatibilitu s dalšími funkcemi WordPressu. Po úspěšné kontrole obdržíte adresu SVN repozitáře. Po odeslání kódu pomocí SVN se plugin objeví v oficiálním katalogu. Tento proces může trvat několik týdnů a existují podrobné kritéria pro hodnocení pluginů.