Proč se učit vývoj pluginů pro WordPress?
WordPress se stal nejoblíbenějším systémem pro správu obsahu na světě díky své vysoké rozšiřitelnosti. Klíčem k této rozšiřitelnosti jsou právě pluginy. Pomocí vývoje vlastních pluginů můžete do svého webu přidat jakékoli funkce, které si představíte, aniž byste museli měnit základní kód WordPressu. Toto nejenže zajišťuje bezpečnost při aktualizacích samotného systému, ale také činí vaše funkce modulárními, což usnadňuje jejich správu a přesun na jiné platformy.
Naučení se vývoje pluginů vám umožní přejít z role “uživatele” WordPressu na roli “tvůrce”. Ať už jde o vytváření unikátních funkcí na míru pro zákazníky, řešení konkrétních obchodních požadavků, nebo balení vašich nápadů do produktů určených k prodeji na trhu, ovládnutí této dovednosti vám otevírá nekonečné možnosti. Ještě důležitější je, že pochopení pracovního postupu při vývoji pluginů vám pomůže lépe ladit a dále vylepšovat již existující pluginy.
Standardní WordPress plugin je strukturálně složen z adresáře, který obsahuje hlavní PHP soubor. Tento hlavní soubor oznámí svou přítomnost systému WordPress pomocí specifických poznámek (“comment headers”). Veškerá obchodní logika – ať už jde o přidání nového widgetu, vytvoření vlastního typu článku nebo zpracování dat z formulářů – je připojena a spuštěna pomocí různých „hooků“ poskytovaných systémem WordPress.
Doporučujeme k přečtení. Vývoj WordPress pluginů od základů až po pokročilé úrovně: Postupná příručka, jak vytvořit svou vlastní funkci。
Vytvořte svůj první projekt plug-inu
Před zahájením vývoje potřebujete místní vývojové prostředí. Doporučujeme nástroje jako XAMPP, MAMP, Local by Flywheel nebo Docker k nastavení lokálního serveru obsahujícího PHP, MySQL a Apache/Nginx. Vývoj provádět na lokální instalaci WordPressu vám umožní vyhnout se možným negativním dopadům na webové stránky v reálném prostředí.
Základní struktura souborů pro vytvoření pluginu
Nejjednodušší plugin může obsahovat pouze jeden soubor. V adresáři s vaší instalací WordPressu přejděte do… wp-content/plugins Složka – vytvořte novou složku, například… my-first-pluginPoté v této složce vytvořte hlavní PHP soubor, jehož název obvykle odpovídá názvu složky. my-first-plugin.php。
Napsat metadatovou hlavičku pro plugin
V hlavním souboru pluginu je velmi důležitý blok komentářů umístěný na začátku souboru. Ten informuje WordPress o názvu pluginu, popisu, verzi, autorovi a dalších detailech. Standardní záhlaví pluginu vypadá následovně:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习 WordPress 插件开发的自定义插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Po uložení souboru se přihlaste do svého WordPress administrátorského panelu a přejděte na stránku “Příslušenství” (Plugins). Měli byste vidět, že “Můj první plugin” (“My First Plugin”) se objevilo v seznamu příslušenství, a můžete ho aktivovat. Tím je vytvořen „prázdný“, ale funkční plugin. V tuto chvíli nemá žádné funkce, ale jeho struktura je správná.
Prozkoumání základních mechanismů WordPressu: Hooky a filtry
Podstatou vývoje pluginů pro WordPress je pochopení a využití jeho systému “hooků”. Hooky existují ve dvou typech: akční hooky a filtrovací hooky. Jedná se o mechanismy, které WordPress umožňují v určitéch okamžicích vložit vlastní kód nebo upravit data.
Doporučujeme k přečtení. Úvodní průvodce vývojem pluginů pro WordPress: Vytvořte si své první funkční rozšíření od nuly。
Porozumět způsobu fungování akčních hooků
Akční háčky vám umožňují spouštět vaše funkce v určitých okamžicích během provádění procesu v WordPressu. Například po načtení stránky nebo po zveřejnění článku. add_action() Funkce umožňují připojit vaši vlastní funkci k určitému „hooku“ (příkazu nebo mechanismu). Základní syntaxe je následující:add_action( ‘hook_name’, ‘your_function_name’ );。
Implementujme tedy funkci, která zobrazí vlastní zprávu na spodní část stránek přední části webového rozhraní. K tomu použijeme… wp_footer Tento akční hook.
function my_custom_footer_message() {
echo '<p style="text-align: center; color: #666;">Děkujeme, že navštívili naše stránky! Toto je informace v zápatí stránky, která byla přidána pomocí vlastního doplňku.</p>';
}
add_action( 'wp_footer’, 'my_custom_footer_message’ ); Přidejte tento kód do hlavního souboru svého pluginu. my-first-plugin.php Uložte změny a obnovte webovou stránku. V patičce stránky uvidíte tento text.
Použijte filtr k úpravě výchozího obsahu.
Filtrovací háčky slouží k úpravě dat, která vznikají během zpracování v WordPressu. Na rozdíl od akčních háčků musí funkce filtrování vrátit nějakou hodnotu. add_filter() Funkce slouží k načtení a použití filtrů. Například k úpravě výchozího textu nadpisů článků:
function modify_post_title( $title ) {
if ( is_single() ) {
return '【精选】’ . $title;
}
return $title;
}
add_filter( ‘the_title’, 'modify_post_title’ ); Tato funkce přidá před názvem článku na jednotlivých stránkách předponu “【Vybráno】”, zatímco názvy ostatních stránek (jako je domovská strana nebo stránky se seznamy) zůstanou beze změny. Díky kombinaci akcí a filtrů můžete ovládat téměř každou část funkcionality WordPressu.
Vytvořte užitečnou stránku pro správu zázemí (backend management page).
Aby uživatelé pluginů mohli konfigurovat nastavení, obvykle je potřeba pro ně vytvořit stránku pro správu v administraci. To zahrnuje využití API správního menu v WordPressu.
Doporučujeme k přečtení. Vývoj pluginů pro WordPress: Kompletní průvodce od základů až po pokročilé znalosti – Vytváření vysoce přizpůsobitelných funkcí。
Přidat nový položek do správního menu
Použití add_menu_page() 或 add_options_page() Funkce jako “add_page” umožňují přidat novou stránku do levého menu v administraci WordPressu. Uvedeme si jako příklad přidání stránky do podmenu „Nastavení“.
Nejprve vytvořte funkci, která bude renderovat HTML obsah správní stránky.
function my_plugin_settings_page_html() {
// 检查用户权限
if ( ! current_user_can( ‘manage_options’ ) ) {
return;
}
?>
<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_plugin_settings’ );
do_settings_sections( ‘my_plugin_settings’ );
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="cs"/></form>
</div>
<br /><?php
} Registrovací nastavení, bloky a pole
WordPress poskytuje… register_setting(), add_settings_section() 和 add_settings_field() Tento soubor API slouží k normálnímu zpracování nastavení. Umožňuje automatické zpracování bezpečnostních ověření (Nonce) a ukládání či čtení možností (optionů).
Dále potřebujeme funkci, která inicializuje tyto nastavení. Tato funkce by měla být připojena („montována“) k… admin_init Na háčku.
function my_plugin_settings_init() {
// 注册一个新的设置选项组
register_setting( ‘my_plugin_settings’, ‘my_plugin_options’ );
// 在页面中添加一个新的区块
add_settings_section(
‘my_plugin_section_1’,
‘基础设置’,
null, // 回调函数,用于输出区块描述,可为空
‘my_plugin_settings’
);
// 在区块内添加一个字段
add_settings_field(
‘my_plugin_field_text’,
‘欢迎语’,
‘my_plugin_field_text_cb’,
‘my_plugin_settings’,
‘my_plugin_section_1’,
[
‘label_for’ => ‘my_plugin_field_text’,
‘class’ => ‘my_plugin_row’,
]
);
}
add_action( ‘admin_init’, ‘my_plugin_settings_init’ );
// 字段的回调函数,用于输出字段的 HTML
function my_plugin_field_text_cb( $args ) {
$options = get_option( ‘my_plugin_options’ );
?>
<input type="text" id="<?php echo esc_attr( $args[‘label_for’] ); ?>"
name="my_plugin_options[<?php echo esc_attr( $args[‘label_for’] ); ?>]"
value="<?php echo esc_attr( $options[ $args[‘label_for’] ] ?? ‘’ ); ?>">
<p class="“description”">Tento text bude zobrazen na domovské stránce webového stránky.</p>
<br /><?php
} Přidat odkazy na stránky do menu
Na závěr, použijte… add_options_page() Přidejte tuto stránku, kterou jsme vytvořili, do menu “Nastavení”.
function my_plugin_add_settings_page() {
add_options_page(
‘我的插件设置’, // 页面标题
‘我的插件’, // 菜单标题
‘manage_options’, // 所需能力
‘my-plugin-settings’, // 菜单别名
‘my_plugin_settings_page_html’ // 渲染页面的回调函数
);
}
add_action( ‘admin_menu’, ‘my_plugin_add_settings_page’ ); Nyní, po aktivaci pluginu, najdete v nabídce “Nastavení” v administraci WordPress možnost “Moje pluginy”. Kliknutím na ni se zobrazí stránka nastavení obsahující textové pole, do kterého můžete zadat a uložit vítanou zprávu. Poté můžete… get_option( ‘my_plugin_options’ ) Získáte tento hodnotu na frontendu a poté ji použijete.
Implementace předních funkcí pluginu a bezpečnostní zohlednění
Při implementaci front-end funkcí v pluginu je bezpečnost nejdůležitějším faktorem. Nikdy nesmíte věřit datům, která uživatel zadá – je nutné je ověřit, očistit a předat v odpovídajícím formátu.
Předpokládejme, že chceme použít vítanou větu uloženou v nastaveních na backendu a zobrazit ji v horní části domovské stránky webu. Nejprve musíme tuto větu získat z databáze a poté ji bezpečně zobrazit.
function display_frontend_greeting() {
// 1. 获取数据
$options = get_option( ‘my_plugin_options’ );
$greeting = $options[‘my_plugin_field_text’] ?? ‘’;
// 2. 如果内容为空,则不输出任何东西
if ( empty( $greeting ) ) {
return;
}
// 3. 在输出前进行清理和转义
$safe_greeting = esc_html( $greeting );
// 4. 输出到前端(这里假设只在首页显示)
if ( is_front_page() ) {
echo ‘<div class="“my-plugin-greeting”"><p>’. $safe_greeting . ‘</p></div>’;
}
}
add_action( ‘wp_body_open’, ‘display_frontend_greeting’ ); Zde jsme použili… esc_html() Funkce slouží k eskalaci HTML znaků, aby se zabránilo útokům typu cross-site scripting (XSS). Také jsme zkontrolovali, zda jsou data prázdná, a použili jsme podmíněné značky. is_front_page() Slouží k ovládání umístění výstupu. Funkci je potřeba nasadit („mount“) na odpovídající místo. wp_body_open Hooky zajistí, že se obsah zobrazí ihned po začátku značky na stránce.
Kromě toho je internacionalizace také důležitou praxí při vývoji doplňků. Pomocí __() 和 _e() Použití funkcí pro překlad a správné nastavení textového doménu (Text Domain) vašeho pluginu umožní, aby byl přeložen do jakéhokoli jazyka. V předchozích metadatech hlavy pluginu jsme to již definovali. Text Domain: my-first-pluginV kódu by to mělo být použito následovně:
echo esc_html__( ‘Hello, World!’, ‘my-first-plugin’ ); Závěr
Díky praktickým ukázkám v tomto článku jsme dokončili celý, ale zároveň jednoduchý proces vývoje WordPress pluginu. Začali jsme vytvořením základní struktury souborů a metadat pluginu a postupně jsme se ponořili do jáderných mechanismů WordPressu – systému hooků. Pomocí akcí a filtrů jsme ovládali průběh programu a měnili data. Následně jsme vytvořili administrativní stránku v administrátorovém panelu obsahující vlastní pole, která umožňují uživatelům nastavit parametry pluginu, a nakonec jsme tyto parametry bezpečně zobrazili na webových stránkách.
Tento proces zahrnuje několik klíčových aspektů vývoje pluginů: organizaci souborů, využití „hooků“ (speciálních funkcí), vytváření backend rozhraní, správu nastavení a zabezpečení dat na straně klienta. Pamatujte, že kvalitní pluginy by měly být nejen funkčně výkonné, ale také bezpečné, efektivní a snadno udržovatelné. Následně můžete zkusit přidat pluginu další funkce – např. možnost vytváření vlastních typů článků, použití „shortcodes“, vytvoření pomocných nástrojů nebo implementaci REST API endpointů – čímž budete dále rozšiřovat své znalosti vývoje WordPress pluginů.
Časté dotazy
Může plugin obsahovat pouze jediný soubor PHP?
Ano, nejjednodušší WordPress plugin může sestávat pouze z jednoho PHP souboru, pokud tento soubor obsahuje správné hlavičkové poznámky (header comments). Pro pluginy s komplexnějšími funkcemi je však doporučeno organizovat kód do různých souborů – např. zvlášť pro backend funkce, frontend funkce a společné funkce – aby byl kód čitelnější a snazší na údržbu.
Jak ladit vlastně vyvinutý plugin?
Doporučujeme zapnout režim ladění (debugging mode) v WordPressu. To lze provést v kořenovém adresáři vašeho webu. wp-config.php V dokumentu budou uvedeny následující informace: WP_DEBUG Konstanta je nastavena na trueTímto způsobem se zobrazí všechny chyby, varování a upozornění v PHP. Je také možné je kombinovat při použití. error_log() Funkce zapisuje informace o ladění do chybového logu serveru, nebo používá konzoli nástrojů pro vývojáře v prohlížeči k ladění kódu v JavaScriptu.
Při vývoji doplňků (plug-inů) existují několik bezpečnostních pravidel, která je nutné dodržovat. Mezi nejdůležitější patří:
Hlavní princip je: Nikdy nedůvěřujte žádným údajům zadaným uživateli. Vůči všem datům, která přicházejí od uživatelů, musíte zachovávat maximální opatrnost. $_GET、$_POST、$_COOKIE Získaná data je nutné ověřit a očistit. Při výstupu dat do HTML se použije… esc_html()、esc_attr()、esc_url() Použijte funkce pro escape (např. `%s`, `%1$s`, `%{var}`) při vytváření databázových dotazů. $wpdb->prepare() Metody pro prevenci útoků typu SQL injection. Kromě toho je třeba zkontrolovat oprávnění aktuálního uživatele (např. current_user_can()Také je to nezbytný krok.
Jak předložit svůj plugin do oficiálního WordPress pluginového katalogu?
Nejprve se ujistěte, že váš plugin plně dodržuje kódovací standardy WordPressu a licenci GPL. Musíte navštívit stránky WordPress.org, vytvořit si účet a poté na stránce pro odeslání pluginů odeslat svůj komprimovaný balíček pluginu. Oficiální tým provede manuální kontrolu, kde budou posuzovány kvalita kódu, bezpečnost, dokumentace a soulad s pravidly. Po úspěšné kontrole bude váš plugin zařazen do oficiálního katalogu, získá podporu pro automatické aktualizace a bude dostupný k hledání a instalaci pro uživatele po celém světě.
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.
- Vývoj WordPress témat od nuly: Vytvoření jedinečného webového rozhraní
- 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
- Kompletní průvodce vývojem WordPress temat: Praktický kurz od základů až po pokročilé znalosti
- Kompletní průvodce vývojem temát pro WordPress: Vytvoření profesionálních webových šablon od nuly