Od začátku až po praxi: Kompletní průvodce vývojem pluginů pro WordPress a pokročilé tipy.

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

Základy vývoje pluginů pro WordPress a příprava prostředí

Vývoj pluginů pro WordPress je klíčovým způsobem, jak rozšířit funkce CMS. Chcete-li začít s vývojem, musíte nejprve nastavit profesionální lokální vývojové prostředí. Doporučujeme použít nástroje jako XAMPP, MAMP nebo modernější Local by Flywheel, které na vašem počítači rychle nastaví plně funkční webový serverový prostředí obsahující PHP, MySQL a Apache. Také se ujistěte, že máte nainstalovanou nejnovější verzi WordPressu a efektivní editor kódu podporující zvýraznění syntaxe PHP, jako je Visual Studio Code nebo PHPStorm.

Jádrem vývoje pluginů je pochopení jejich základní struktury. Plugin je v podstatě jeden nebo více souborů umístěných v adresáři The core of developing plugins is understanding their basic structure. A plugin is essentially one or more files located in a directory.wp-content/plugins/PHP soubory v adresáři. Nejzákladnějším požadavkem je vytvoření jediného hlavního souboru pro plugin. Každý plugin musí obsahovat specifické záhlavní poznámky, které obsahují název pluginu, popis, verzi, autora a další informace. WordPress tyto metadata používá k identifikaci a správě pluginů. Například záhlavní poznámky nejjednoduššího pluginu mohou vypadat takto:

<?php
/**
 * Plugin Name: 我的第一个插件
 * Description: 这是一个用于演示的简单插件。
 * Version: 1.0
 * Author: 开发者名称
 */

Po umístění PHP souboru obsahujícího tuto poznámku do adresáře pluginů jej budete moci vidět a aktivovat na stránce “Pluginy” v administraci WordPressu.

Doporučujeme k přečtení. Začínáme od nuly: Kompletní průvodce vývojem pluginů pro WordPress a sdílení osvědčených postupů.

Katalog plug-inů a pravidla pojmenování

Jasně strukturovaný plugin je nezbytný pro údržbu a spolupráci. Pro pluginy s komplexní funkčností se doporučuje vytvořit samostatné adresáře namísto jediného souboru. Názvy adresářů by měly být krátké, jednoznačné a psané malými písmeny, obvykle shodné s názvem hlavního souboru pluginu. Například plugin s názvem “my-awesome-plugin” by měl mít adresárovou strukturu obsahující hlavní soubor.my-awesome-plugin.php, UkládánícssjsSložka a jeden soubor pro definování háčků.includesSložky a také nástroje pro internacionalizaci.languagesSložky. Dodržování této struktury může zvýšit čitelnost kódu.

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.

Klíčové pojmy: akční háky a filtry.

Pochopení systému hooků WordPressu je základem vývoje pluginů. Hooky vám umožňují “připojit” svůj kód nebo “filtrovat” data v konkrétních momentech, aniž byste museli upravovat základní kód. Dělí se na dvě hlavní kategorie: akční hooky a filtry.

Použití akčních háčků.

Akční háky vám umožňují spouštět vlastní kód v konkrétních fázích životního cyklu WordPressu, například při publikování článku, načítání stránky nebo přihlašování uživatele. K tomu potřebujete použítadd_action()Funkce pro registraci volací funkce. Pokud například chcete automaticky přidat text na začátek každého článku, můžete jej připojit kthe_contentPokud jde o tuto akci:

Funkce myplugin_prepend_content($content) {
    $prepend_text = '<p>To je obsah, který byl přidán mým pluginem.</p>';
    return $prepend_text . $content;
}
add_filter('the_content', 'myplugin_prepend_content');

Vezměte prosím na vědomí, že výše uvedený příklad ve skutečnosti používá filtry k úpravě obsahu. Příkladem čistého akčního háku jewp_footerOutputuje kód v dolní části stránky:

Funkce myplugin_footer_notice() {
    echo '<p>Tato webová stránka je podporována mým pluginem!</p>';
}
add_action('wp_footer', 'myplugin_footer_notice');

Mechanismus používání filtrů.

Filtry se používají k úpravě jakýchkoliv dat před jejich vykreslením nebo uložením do databáze. Na rozdíl od akčních hooků obdrží filtry hodnotu a musí vrátit zpracovanou hodnotu. Používáte je pomocíadd_filter()Funkce pro přidání filtrů. Běžným příkladem je změna délky souhrnu článku pomocí hooku.excerpt_lengthFiltr:

Doporučujeme k přečtení. Zahájení vývoje pluginů pro WordPress znamená, že jste získali schopnost vytvářet nástroje, které budou používány po celém světě.

function myplugin_custom_excerpt_length($length) {
    return 20; // 将摘要长度改为20个单词
}
add_filter('excerpt_length', 'myplugin_custom_excerpt_length');

Znalost systému hooků umožní vašim pluginům bezproblémově spolupracovat s jádrem WordPressu i s dalšími pluginy.

Vytvořte plně funkční plugin.

Nyní spojíme výše uvedené znalosti a vytvoříme praktický plugin s interakcí mezi frontendem a backendem: plugin pro statistiku počtu přečtení článků. Tento plugin ukáže, jak vytvořit tabulky databáze, bezpečně integrovat frontend a backend a používatwp_localize_script()Aby bylo možné předat data z PHP do JavaScriptu.

Inicializace pluginu a vytvoření datové tabulky.

Hlavní třída pro prostředí plug-inu se nazýváPost_View_Counter
Nejprve, když se plugin aktivuje (pomocí příkazuregister_activation_hook) Vytvořte datovou tabulku pro ukládání počtu přečtených knih.

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.
class Post_View_Counter {
    public function __construct() {
        register_activation_hook(__FILE__, array($this, 'activate'));
        add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
        add_action('wp_ajax_nopriv_record_view', array($this, 'record_view'));
        add_action('wp_ajax_record_view', array($this, 'record_view'));
        add_filter('the_content', array($this, 'display_view_count'));
    }

public function activate() {
        global $wpdb;
        $table_name = $wpdb->prefix . 'post_views';
        $charset_collate = $wpdb->get_charset_collate();
        $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            post_id bigint(20) NOT NULL,
            view_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
            PRIMARY KEY (id)
        ) $charset_collate;";
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
    }

Názvy tabulek v databázi byly použity$wpdb->prefixAby bylo zajištěno jednoznačné označování v prostředí s více weby.

Interakce mezi frontendem a backendem a zpracování pomocí AJAX.

Abychom mohli asynchronně aktualizovat počet čtení při návštěvě uživatele, potřebujeme do front-endu přidat JavaScript. Nejprve použijeme…wp_enqueue_script()Nahrát soubor JS bezpečně a pomocíwp_localize_script()Předejte skriptu potřebné parametry (například ID aktuálního článku a adresu URL AJAX).

    public function enqueue_scripts() {
        if(is_single()) {
            wp_enqueue_script('pvc-script', plugin_dir_url(__FILE__) . 'js/pvc-script.js', array('jquery'), '1.0', true);
            wp_localize_script('pvc-script', 'pvc_ajax', array(
                'ajax_url' => admin_url('admin-ajax.php'),
                'post_id' => get_the_ID(),
                'nonce' => wp_create_nonce('pvc_nonce')
            ));
        }
    }

Poté napište funkci pro zpracování AJAX.record_view()Přijímat požadavky z frontendu a bezpečně vkládat data do databáze. Zde je nutné provést kontrolu oprávnění a ověření náhodného čísla za účelem zabránění útokům typu CSRF.

Doporučujeme k přečtení. Komplexní návod k vývoji pluginů pro WordPress: vytváření vlastních funkčních modulů od nuly.

    public function record_view() {
        // 安全检查
        check_ajax_referer('pvc_nonce', 'nonce');
        $post_id = intval($_POST['post_id']);
        // 验证文章是否存在
        if(get_post_status($post_id)) {
            global $wpdb;
            $table_name = $wpdb->prefix . 'post_views';
            $wpdb->insert($table_name, array('post_id' => $post_id));
            wp_die('success');
        }
        wp_die('error', 400);
    }

Na závěr jsme provedlithe_contentFiltr zobrazí počet přečtení na konci článku.

    Veřejná funkce display_view_count($content) {
        Pokud je to jednotlivý příspěvek (is_single), 
        globální proměnné $wpdb a $post jsou inicializovány. 
        $table_name je nastaven na prefix databáze 'post_views'. 
        $view_count je získáno pomocí dotazu na databázi $wpdb-&gt;prepare(
            "SELECT COUNT(*) FROM $table_name WHERE post_id = %d", $post-&gt;ID
         ); 
        $content je nakonec doplněno o výsledek dotazu.  
    }'<p>Tento článek byl přečten. <strong>'.intval($view_count) . '</strong> Několikrát.</p>';
        }
        return $content;
    }
}
new Post_View_Counter();

Tento příklad zahrnuje klíčové procesy vývoje pluginů, včetně správy životního cyklu, operací s databází, zabezpečené komunikace a integrace funkcí.

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.

Pokročilé techniky a osvědčené postupy

Když se pluginy stanou komplexními, je důležité dodržovat osvědčené postupy. Nejde jen o kvalitu kódu, ale také o bezpečnost, výkonnost a udržovatelnost.

Realizace internacionalizace pluginu.

Aby váš plugin mohli používat uživatelé po celém světě, musí podporovat internacionalizaci. WordPress používá rámec GNU gettext. Nejprve použijte gettext ve všech textových řetězcích určených pro uživatele.__()_e()A poté zabalíme tyto funkce.

$greeting = __('你好,世界!', 'my-plugin-textdomain');
_e('这是一个可翻译的句子。', 'my-plugin-textdomain');

Poté pomocí nástrojů, jako je Poedit, vytvořte.potNahrát šablonový soubor a nechat překladatele vytvořit odpovídající jazykovou verzi..po.moSoubor. Nakonec jej použijte při načítání pluginu.load_plugin_textdomain()Funkce pro načtení překladu. To významně zlepší přijatelnost pluginu na trzích mimo anglicky mluvící země.

Nastavení stránky a možnosti API

Profesionální pluginy obvykle poskytují konfigurační stránku. WordPress nabízí robustníSettings APIPro bezpečné vytváření, ověřování a ukládání možností.
Musíte použítadd_options_page()add_menu_page()Přidejte správní stránku. Poté použijteregister_setting()add_settings_section()add_settings_field()K vytvoření formuláře a propojení ho s možnostmi v databázi.
Vždy ověřujte a očišťujte uživatelské vstupy pomocísanitize_text_field()intval()Funkce jako „čekat“ a podobně, a při výstupu je použít.esc_html()esc_attr()Proveďte únikové kódy, abyste zabránili útokům XSS.

Optimizace výkonnosti a posílení bezpečnosti.

Pokud jde o výkonnost, měla by být používána rozumně.wp_cache_get()wp_cache_set()Použijte funkce pro ukládání do mezipaměti objektů WordPress k uložení výsledků dotazů. U častých operací s databází se ujistěte, že SQL příkazy jsou optimalizované a používané správně.$wpdb->prepare()Připravte dotaz na databázi, abyste zabránili SQL injekci.
Pokud jde o bezpečnost, nikdy nesmíte důvěřovat vstupním údajům od uživatelů. Kromě výše uvedeného čištění a unikování je nutné používat další metody pro zpracování citlivých operací, jako jsou požadavky AJAX nebo odesílání formulářů.wp_verify_nonce()check_ajax_referer()Zkontrolujte náhodná čísla a použijte je.current_user_can()Zkontrolujte oprávnění uživatele. To vytvoří pevnou bezpečnostní ochranu pro plugin.

Závěr

Vývoj pluginů pro WordPress vyžaduje kombinaci dovedností v PHP programování, porozumění základním API WordPressu a osvědčeným postupům webového vývoje. Začíná se vytvořením jediného souboru obsahujícího standardní poznámky v hlavičce, po němž musí vývojáři důkladně porozumět základním interaktivním mechanismům akčních háčků a filtrů. S tím, jak se funkce pluginu rozšiřují, stává se klíčovým správné řízení databáze, bezpečné zpracování AJAX požadavků a vytváření uživatelsky přívětivého nastavení. Navíc dodržování pokročilých postupů, jako je internacionalizace, optimalizace výkonu a bezpečné kódování, může proměnit jednoduchý funkční skript v profesionální, spolehlivý a populární komerční plugin. Neustálé učení na WordPress Codex a zdrojích pro vývojáře je klíčem k neustálému zlepšování úrovně vývoje.

Časté dotazy

Jaké základní znalosti jsou potřebné k vývoji WordPress pluginů?
Vývoj WordPress pluginu vyžaduje alespoň solidní znalosti PHP, včetně konceptů objektově orientovaného programování. Současně je nutné mít základní znalosti HTML, CSS, JavaScriptu (zejména jQuery) a MySQL. Nejdůležitější je dobře znát základní architekturu WordPressu, zejména jeho systém hooků (akce a filtry), globální proměnné a třídy pro práci s databází.$wpdbA také postup fungování šablon témat.

Jak ladit vlastní WordPress pluginy?

Nejúčinnějším způsobem je zapnout režim ladění WordPressu. Vwp-config.phpV dokumentu jsou nastavení.define(‘WP_DEBUG’, true);To přímo na stránce zobrazí chyby, varování a oznámení PHP. Pro komplexnější ladění logiky můžete použíterror_log()Funkce zapíše informace o proměnných do protokolu chyb serveru nebo pomocí profesionálních nástrojů pro ladění PHP, jako je Xdebug. Pro AJAX a interakci s uživatelským rozhraním jsou nezbytné vývojářské nástroje prohlížeče (konzola a síťový panel).

Jak je můj plugin kompatibilní s ostatními pluginy nebo šablonami?

Hlavním principem pro zajištění dobré kompatibility je používání API poskytovaného oficiálně WordPressem, nikoli přímé úpravy základních souborů nebo databázových tabulek. Pro funkce, třídy a proměnné používejte jedinečné předpony, aby se zabránilo kolizím názvů. Globální proměnné používejte s opatrností. Při přidávání nebo odstraňování „hooků“ (dodatečných funkcí, které se spouštějí v určitých okamžicích během provozu webu) ujistěte se, že se to provádí ve správný čas.initPo připojení. Pokud by funkce pluginu mohly být přepsány, měli byste zvážit poskytnutí filtrů, které umožní ostatním vývojářům je přizpůsobit. Před vydáním je nutné plugin testovat v různých prostředích a na populárních tématech.

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

Nejprve si musíte vytvořit účet na WordPress.org a odeslat plugin. Kód vašeho pluginu musí být v souladu s oficiálními kódovými standardy a nesmí obsahovat žádný šifrovaný nebo zmatený kód. Plugin musí mít standardní záhlavní poznámky a co nejpodrobnější dokumentaci README. Všechny textové řetězce musí podporovat internacionalizaci. Po odeslání plugin podrobí tým recenzentů kontrole, při níž se zaměří především na bezpečnost, kvalitu kódu a soulad s licencí GPL. Po schválení bude váš plugin k dispozici pro vyhledávání a stahování uživatelům po celém světě.