Přípravné práce a konfigurace prostředí
Před zahájením jakéhokoli skutečného kódování je nezbytné vytvořit stabilní a efektivní lokální vývojové prostředí. Toto prostředí bude sloužit jako „pískovka“ pro vývoj, testování a ladění všech doplňků (pluginů), čímž zajistíte, že nebudete ovlivňovat webové stránky v provozu.
Nejpohodlnější způsob je použít software určený k integraci lokálních serverů, jako je XAMPP, MAMP (použitelný na Macu) nebo Local by Flywheel. Tyto nástroje jedním kliknutím nainstalují Apache (nebo Nginx), databázi MySQL a PHP, což perfektně odpovídá požadavkům na provoz WordPressu. Po instalaci lokálního serveru si stáhněte nejnovější verzi základních souborů WordPressu, rozbalte je do kořenového adresáře webového serveru (např. htdocs nebo www) a postupujte podle známého “pětiminutového postupu instalace” k inicializaci webové stránky WordPress.
Dále budete potřebovat vhodný editor kódu. I když bude fungovat jakýkoli textový editor, použití nástrojů určených přímo pro programátory (jako je Visual Studio Code, PhpStorm nebo Sublime Text) výrazně zvýší vaši efektivitu. Tyto nástroje nabízejí funkce jako výrazové zvýraznění kódu, automatické doplňování textu, upozornění na chyby a integraci s terminálem. Důrazně doporučujeme nainstalovat do vašeho editoru doplňky („plugins“) speciálně určené pro práci s WordPressem, které zlepší fungování editoru a poskytnou lepší podporu při práci s kódem.
Doporučujeme k přečtení. Průvodce vývojem WordPress pluginů: Postupné vytvoření vašeho prvního vlastního pluginu。
Na závěr, pro usnadnění správy verzí kódu a týmové spolupráce je nutné se seznámit s některým systémem pro správu verzí.Git To je aktuální mainstream volba. inicializujte to v adresáři vašeho projektu. Git Uložiště dat a jeho propojení s vzdálenými úložištími (jako je GitHub, GitLab nebo Bitbucket) vám nejen umožní zálohovat svou práci, ale také přehledně sledovat každou změnu v kódu.
Vytvořte si svůj první WordPress plugin.
Začněme vytvořením nejjednoduššího, ale přesto strukturálně kompletního pluginu, což vám pomůže pochopit jeho základní složení. WordPress plugin je v podstatě jedním nebo více PHP souborů, které jsou umístěny v určitých adresářích systému WordPress. /wp-content/plugins/ Nachází se v adresáři a informuje WordPress o své existenci pomocí poznámky v hlavičce ve specifickém formátu.
Nejprve, přihlaste se. /wp-content/plugins/ Vytvořte novou složku a pojmenujte ji podle svého pluginu. Například: my-first-pluginV této složce vytvořte hlavní soubor pluginu, který se obvykle nazývá stejně jako složka a je doplněn o příponu „.plugin“. .php Přípony, například… my-first-plugin.phpOtevřete tento soubor pomocí svého kódovacího editoru.
Napsat informace do hlavičky hlavního souboru pluginu
Na začátku souboru s pluginem musí být obsažen blok dokumentačních poznámek v standardním formátu PHP. Tyto informace v hlavičce jsou klíčové pro rozpoznání a zobrazení pluginu v administračním rozhraní WordPress. Zadejte následující kód:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于演示 WordPress 插件开发基础的简单插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Po uložení souboru se přihlaste do svého WordPress administrátorského panelu a přejděte do menu “Příslušenství” (Plugins). Měli byste vidět, že “Můj první plugin” (My First Plugin) je zařazen do seznamu pluginů. Zde jej můžete aktivovat nebo deaktivovat. V tuto chvíli tento plugin nic nedělá, ale úspěšně jste vytvořili plugin, který je přijatý systémem WordPress.
Doporučujeme k přečtení. Od nuly ke jedničce: Autoritativní průvodce vývojem WordPress pluginů a praktické učebnice。
Přidání první funkce pro plugin
Teď přidáme tomuto pluginu jednu jednoduchou funkci: umožníme vložit řádek vlastního textu do patra webové stránky. Pro to použijeme funkce dostupné v WordPressu. wp_footer Toho lze dosáhnout pomocí „hooků“. Do hlavního souboru pluginu přidejte následující kód pod informacemi v hlavičce:
/**
* 在网站页脚输出自定义文本
*/
function myfp_add_footer_text() {
echo '<p style="text-align: center; color: #666;">Děkuji, že jste využili můj první plugin!</p>';
}
add_action( 'wp_footer', 'myfp_add_footer_text' ); Po uložení souboru aktualizujte přední část své webové stránky a přečtěte se až na konec stránky – měli byste vidět přidaný text. Tímto příkladem jste si vyzkoušeli dva základní koncepty vývoje v WordPressu: napsání funkce s určitou funkcí a následné použití této funkce v rámci vašeho webového projektu. add_action() Funkce je připojena („hookována“) na konkrétní místo v životním cyklu WordPressu.wp_footer)。
Podrobněji do hloubky: Hooky a filtry
Hooky funkce jsou esencí vývoje pluginů pro WordPress. Umožňují vložit vlastní kód v určitých bodech běhu jádra WordPressu, tematických souborů nebo jiných pluginů, aniž by bylo nutné měnit původní kódy. Hooky se hlavně dělí na dvě kategorie: akce (Actions) a filtry (Filters).
Porozumět a využívat akční háčky (action hooks)
Akční háčky vám umožňují spouštět vlastní funkce při nastání určitých událostí. Například, když je zveřejněn článek…publish_postKdyž se uživatel přihlásí…wp_login), nebo tak, jak jsme to dříve dělali, při výstupu do patice (footer).wp_footerPoužijte. add_action() Funkce slouží k přidání vaší callback funkce.
Zde je příklad, který je ještě praktičtější: Když se registrová nový uživatel, pošle se administrátorovi e-mailová zpráva s oznámením.
/**
* 新用户注册时通知管理员
* @param int $user_id 新注册用户的ID
*/
function myfp_notify_admin_on_registration( $user_id ) {
$user = get_userdata( $user_id );
$admin_email = get_option( 'admin_email' );
$subject = '有新用户注册!';
$message = sprintf( '新用户 %s (邮箱:%s) 刚刚完成了注册。', $user->user_login, $user->user_email );
wp_mail( $admin_email, $subject, $message );
}
add_action( 'user_register', 'myfp_notify_admin_on_registration' ); Ovládněte mocné funkce filtrů.
Filtrovací hooky vám umožňují upravovat data, která jsou předávána v rámci procesu. Můžete měnit textový obsah, hodnoty volitelných parametrů, parametry dotazů a téměř všechno ostatní. Filtry se používají k… apply_filters() Funkce definuje data bodů a ty jsou následně použity. add_filter() Funkce slouží k přidání vaší modifikované funkce.
Doporučujeme k přečtení. Kompletní průvodce vývojem pluginů pro WordPress: praktický návod od nuly až po publikování a spuštění.。
Například chcete automaticky přidávat prohlášení o autorských právech na konci obsahu všech článků.
/**
* 在所有文章内容末尾添加版权声明
* @param string $content 原始文章内容
* @return string 修改后的文章内容
*/
function myfp_add_copyright_to_content( $content ) {
if ( is_single() ) { // 仅在单篇文章页面生效
$copyright_text = '<div class="my-copyright">© Všechna práva vyhrazena. Reprodukce zakázána.</div>';
$content .= $copyright_text;
}
return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' ); Rozpoznání rozdílů a způsobů použití akcí (k provádění úkolů) a filtrů (k úpravě dat) je klíčové pro stání se pokročilým vývojářem WordPress.
Pokročilý vývoj: Architektura pluginů a bezpečnost
S rostoucím počtem funkcí pluginů se stává obtížným udržovat veškerý kód soustředěný v hlavním souboru. Dobrá struktura projektu je zásadní. Zároveň musí být bezpečnost integrována do každého kroku vývoje.
Vytvoření udržovatelné architektury pluginů
Typický a dobře strukturovaný adresář plug-inů může vypadat následovně:
my-advanced-plugin/
├── my-advanced-plugin.php // 主插件文件,负责引导和核心设置
├── includes/ // 核心功能类或函数文件
│ ├── class-core.php // 主功能类
│ ├── class-admin.php // 后台管理逻辑
│ └── class-public.php // 前端逻辑
├── admin/ // 后台相关资源
│ ├── css/
│ ├── js/
│ └── partials/ // 管理页面模板
├── public/ // 前端相关资源
│ ├── css/
│ ├── js/
│ └── partials/
├── assets/ // 共享资源,如图标、图片
├── languages/ // 国际化语言文件
└── uninstall.php // 插件卸载时执行的清理代码 V hlavním souboru pluginu použijte… require_once Soubory z jiných adresářů mohou být načítány podle potřeby. Tato modulární struktura umožňuje jasné rozdělení pracovních úkolů mezi členy týmu, což usnadňuje spolupráci a další rozšiřování funkcí systému.
Implementování zásadních bezpečnostních postupů je nezbytné.
V ekosystému WordPress nelze bezpečnost ignorovat. Níže jsou uvedena některá pravidla, která je nutné dodržovat:
1. **Data Validation (Validace):** Provádí se kontrola všech neplatných nebo nedůvěryhodných vstupů pocházejících od uživatelů nebo z externích zdrojů. $_GET, $_POST, $_COOKIEPro ověření je třeba zajistit, že data odpovídají očekávanému formátu. K tomu můžete použít funkce, jako jsou např.… sanitize_text_field(), intval(), filter_var()。
2. Uvolnění dat (Escaping): Před tím, než jakékoli data vypíšete do prohlížeče (HTML, JavaScript, URLy), je nutné je upravit takzvaným „uvolněním“ (escaping), aby se zabránilo útokům typu cross-site scripting (XSS). K tomu slouží funkce jako… esc_html(), esc_js(), esc_url()。
3. Kontroly schopností (Capability Checks): Před prováděním správních operací nebo přístupem k citlivým datům vždy zkontrolujte, zda má aktuální uživatel dostatečná oprávnění. Používejte current_user_can() Funkce.
4. Neopakovatelná ověřovací čísla (Nonce Verification): U všech požadavků, které zahrnují změny dat (např. odeslání formulářů, AJAX operace), je nutné použít jednorázové náhodné číslo (Nonce) k ověření účelu a zdroje požadavku, aby se zabránilo podvodným požadavkům ze strany jiných webových stránek (Cross-Site Request Forgery – CSRF).
Níže je příklad, který kombinuje bezpečnostní postupy při vytváření funkce pro ukládání nastavení:
// 在表单提交处理中
function myfp_save_settings() {
// 1. 检查权限
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( '权限不足。' );
}
// 2. 验证 Nonce
if ( ! isset( $_POST['myfp_settings_nonce'] ) || ! wp_verify_nonce( $_POST['myfp_settings_nonce'], 'myfp_save_action' ) ) {
wp_die( '安全校验失败,请重试。' );
}
// 3. 验证和清理输入数据
$option_value = sanitize_text_field( $_POST['my_option'] );
// 4. 保存到数据库 (update_option 有自己的数据清理机制,但我们已经做了)
update_option( 'myfp_custom_option', $option_value );
// 5. 重定向并添加成功消息
wp_redirect( add_query_arg( 'message', 'saved', admin_url( 'admin.php?page=myfp-settings' ) ) );
exit;
}
add_action( 'admin_post_myfp_save_settings', 'myfp_save_settings' ); Závěr
Vývoj pluginů pro WordPress je cesta, která začíná pochopením základní struktury systému, postupně se zaměřuje na klíčové mechanismy („hooky“) a nakonec vás dovede k vytváření bezpečných a udržovatelných aplikací. Vytvořením jednoduchého pluginu jste se naučili, jak přimět WordPress, aby rozpoznal váš kód. Díky hookům pro akce („actions“) a filtry („filters“) jste získali znalosti o základním způsobu interakce s jádrem WordPressu, což vám umožnilo rozšiřovat funkce a přizpůsobovat data. Nakonec jste zajistili stabilitu, škálovatelnost a odolnost vašeho pluginu plánováním architektury projektu a dodržováním bezpečnostních postupů. Díky pravidelnému procvičování, čtení základního kódu a zapojení do komunity vývojářů WordPressu se budete moci posouvat od počátečních úrovní k odbornosti a vytvářet profesionální pluginy.
Časté dotazy
Jaké základní znalosti jsou potřebné k vývoji pluginů pro WordPress?
Potřebujete mít základní znalosti programovacího jazyka PHP, protože pluginy jsou převážně napsány v PHP. Základní porozumění HTML, CSS a JavaScriptu vám také velmi pomůže při vývoji pluginů, které zahrnují interakci na straně klienta. Pochopení základních konceptů databáze MySQL (jako jsou dotazy, přidávání, měnění a vyhledávání dat) je také užitečné při práci s komplexními daty. Nejdůležitější však je obeznámenost se základními koncepty WordPressu, jako jsou články (Posts), stránky (Pages), uživatelské role (User Roles) a systém hooků, o kterém bylo podrobněji řečeno výše.
Jak přidat svému pluginu samostatnou stránku s administrátorským menu?
Použijte funkce API záložkového menu poskytovaného WordPressem. Obvykle je použijete v rámci jedné funkce. add_menu_page() 或 add_submenu_page() Funkce slouží k registraci položek menu a jejich odpovídajících callback funkcí. Tato akce musí být propojena („hooked“) s odpovídajícími systémovými mechanismy. admin_menu Na háčku. V zpětné volací funkci můžete vypsat HTML k vytvoření své nastavovací stránky a zpracovat odeslání formuláře.
Jak by měly pluginy interagovat s databází WordPress?
WordPress poskytuje globální objekty. $wpdbJedná se o výkonnou abstrakční třídu databáze určenou k provádění vlastních SQL dotazů. Pro strukturovanější ukládání dat se doporučuje použít API možností WordPress.get_option(), update_option(), add_option()K uložení jednoduchých párů klíč–hodnota lze použít různé nástroje, nebo také API pro práci s metadaty článků.add_post_meta(), get_post_meta()Slouží k ukládání dat souvisejících s konkrétními články, stránkami nebo vlastními typy článků. Snažte se co nejvíce vyhnout přímému psaní originálního SQL kódu.
Jak mohu zajistit, aby můj plugin podporoval internacionalizaci v více jazycích?
WordPress využívá technologickou sadu GNU gettext pro zajištění internacionalizace (i18n). Musíte provést následující kroky: Nejprve ve svém kódu pluginu vyměňte všechny textové stránky, které je třeba přeložit, za příslušné překladatelské značky. (), esc_html() 或 _e() Za prvé, funkce pro čekání by měla být zabalena do nějaké funkční vrstvy (tj. „wrapper“). Za druhé, měla by být tato funkce použita v části hlavy pluginu („header“). load_plugin_textdomain() Funkce slouží k načtení souborů s překlady. Nakonec se použije nástroj, jako je Poedit, k vytvoření konečného produktu (překladu). .pot Šablony pro překladatele, které slouží k vytvoření překladů do konkrétního jazyka. .po 和 .mo Dokumenty.
Jak otestovat svůj plugin, aniž by to poškodilo webové stránky?
Důrazně doporučujeme provádět veškerý vývoj a počáteční testování v lokálním vývojovém prostředí (např. XAMPP, Local by Flywheel) nebo na nezávislém, neveřejném testovacím serveru (Staging Server). Nikdy nesmíte vyvíjet a testovat zcela nové, neproverené doplňky přímo na produkčním webu. V lokálním prostředí nebo na testovacím serveru můžete bez obav způsobovat chyby a ladit kód, aniž byste ohrozili skutečné uživatele nebo data webu.
Jaký je další krok? Co bych měl udělat dál?
Další čtení a praktické znalosti
Následující obsah souvisí s tématem tohoto článku a je vhodný k dalšímu prostudování. Obvykle je lepší začít čtením článku, který je nejblíže vašemu aktuálnímu problému, a poté postupně přecházet k souvisejícím tématům.
- Jak vybrat a přizpůsobit si dokonalý WordPress téma?
- Průvodce vývojem WordPress pluginů: Vytvořte si svůj první vlastní plugin od nuly
- Jak stát se vývojářem WordPress pluginů: Kompletní průvodce od začátku
- Od nuly k jedné: Kompletní průvodce a praktické tipy pro vytvoření profesionální webové stránky pomocí WordPressu.
- Praktické vývoj tem pro WordPress: Vytvoření responzivních firemních webových stránek od nuly