Pokud chcete rozšířit funkce vašeho WordPress webu, nejsilnějším způsobem je vytvořit vlastní plugin. Ať už to je potřeba pro splnění konkrétních obchodních požadavků, nebo proto, abyste své nápady sdíleli s komunitou, ovládnutí dovedností vývoje pluginů je klíčové pro zvýšení schopností vašeho WordPress projektu. Tento článek vás provede celým procesem vytvoření plně funkčního a standardního WordPress pluginu od začátku.
Vývojové prostředí a základní přípravy
Než začnete psát kód, je nezbytné mít stabilní a efektivní vývojové prostředí. To nejenže zvýší vaši pracovní efektivitu, ale také zajistí, že kód vašeho pluginu nebude mít žádné problémy při budoucím nasazování.
Nastavení lokálního vývojového prostředí
Doporučujeme použít software určený k nastavení lokálního serverového prostředí, jako je Local by Flywheel, XAMPP nebo MAMP. Tyto nástroje umožňují jednoduchou instalaci kompletního prostředí obsahujícího Apache/Nginx, MySQL/MariaDB a PHP. Ujistěte se, že verze PHP, kterou používáte, odpovídá minimálním požadavkům vaší plánované verze WordPressu – WordPress obvykle doporučuje konkrétní verze PHP.
Doporučujeme k přečtení. Vývoj pluginů pro WordPress je proces rozšiřování jádra WordPressu.。
Pochopení struktury pluginů pro WordPress
Nejzákladnější WordPress plugin může být jediným PHP souborem, avšak dobře strukturovaný plugin obvykle obsahuje více adresářů a souborů. Hlavní soubor pluginu musí obsahovat standardní poznámky na začátku („header comments“), které jsou klíčové pro to, aby WordPress plugin rozpoznal. Typické adresáře pluginu mohou zahrnovat hlavní soubor (např.you-plugin-name.php)、includes/(Používá se pro klíčové funkce.)admin/(Administrátorské rozhraní)public/(Front-end funkce)assets/(CSS, JavaScript, obrázky) a takélanguages/(Mezinárodní soubor.)
Vytvořte svůj první plugin.
Začněme tím, že vytvoříme jednoduchý plugin “Hello World”. Tento plugin přidá do postranního panelu administrace webové stránky nový menu položku a na této stránce zobrazí výzvu „Ahoj světě!“ („Hello World!“).
Napsání hlavního souboru pluginu a hlavičkových informací
Nejprve, v rámci WordPressu…wp-content/pluginsVytvořte novou složku v adresáři, napříkladmy-first-pluginV této složce vytvořte soubor s názvemmy-first-plugin.phpSoubor musí obsahovat specifické poznámky o hlavičce pluginu na začátku.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于演示的Hello World插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ Tento komentář poskytuje základní informace o pluginu a WordPress je načte a zobrazí na stránce pro správu pluginů.Text DomainPoužívá se pro internacionalizaci.
Přidat správní menu a funkce
Následně použijeme API WordPressu k přidání správního menu. Pod poznámkou v hlavičce stejného souboru přidejte následující kód:
Doporučujeme k přečtení. Podrobné vysvětlení WooCommerce: kompletní návod k vytvoření profesionálního e-commerce webu od nuly.。
// 防止直接访问
defined( 'ABSPATH' ) || exit;
/**
* 添加管理菜单
*/
function mfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限(管理员)
'my-first-plugin', // 菜单slug
'mfp_display_admin_page', // 显示页面的回调函数
'dashicons-smiley', // 图标(Dashicons)
6 // 菜单位置
);
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );
/**
* 显示管理页面的内容
*/
function mfp_display_admin_page() {
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<p>Ahoj, světě! Toto je moje první stránka s pluginem pro WordPress.</p>
</div>
<br /><?php
} Po uložení souboru se přihlaste do administrace vašeho WordPressu a přejděte na stránku “Příslušenství” (Plugins). Měli byste tam vidět svůj první plugin. Po jeho aktivaci se v levém nabídkovém panelu objeví položka s názvem “Moje příslušenství” (My Plugins). Kliknutím na ni uvidíte výstupní zprávu, kterou jsme vytvořili.
Pokročilý vývoj jádra pluginů
Užitečný plugin musí zpracovávat data, nabízet možnosti a bezpečně komunikovat s jádrem systému WordPress.
Používat akční háčky a filtrovací háčky
Architektura pluginů v WordPressu je založena na „hookech“ (závěsech) a rozděluje se na „actions“ (akce) a „filters“ (filtry). Akce vám umožňují spouštět kód v určitých okamžicích – např. při zveřejnění článku – zatímco filtry vám umožňují upravit data (např. obsah článku) před jejich výstupem.
Například, používáme…wp_footerNa spodní část stránky webového rozhraní („footer“) se zobrazí informace:
function mfp_add_footer_text() {
echo '<p style="text-align:center;">Děkuji, že jste využili můj první plugin!</p>';
}
add_action( 'wp_footer', 'mfp_add_footer_text' ); Jako další příklad: použití…the_contentFiltr přidává na konci každého článku odstavec s vlastním textem.
function mfp_append_to_content( $content ) {
if ( is_single() ) {
$extra_text = '<div class="mfp-note"><em>Tento článek byl vylepšen pomocí “Mého prvního pluginu”.</em></div>';
$content .= $extra_text;
}
return $content;
}
add_filter( 'the_content', 'mfp_append_to_content' ); Vytvořte stránku nastavení pluginu.
Aby uživatelé mohli konfigurovat pluginy, potřebujeme vytvořit stránku nastavení obsahující formulář. To obvykle zahrnuje použití API pro nastavení WordPressu, které umožňuje bezpečné registrování, ukládání a ověřování možností (parametrů).
Doporučujeme k přečtení. Vývoj pluginů pro WordPress: vytvoření vlastních funkčních modulů od nuly do jedné.。
Nejprve si zaregistrujte možnost nastavení:
// 在admin_menu钩子之后注册设置
function mfp_register_settings() {
register_setting(
'mfp_settings_group', // 选项组
'mfp_custom_message', // 选项名
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field', // 清理回调函数
'default' => '这是默认的问候信息。'
)
);
}
add_action( 'admin_init', 'mfp_register_settings' ); Poté, v tom, co bylo předtím vytvořeno…mfp_display_admin_pageVe funkci se vytvoří formulář pro uložení tohoto výběru:
function mfp_display_admin_page() {
// 检查用户权限
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( 'mfp_settings_group' ); // 输出安全字段
do_settings_sections( 'my-first-plugin' ); // 如果有设置区块,这里输出
?>
<table class="form-table">
<tr>
<th scope="row"><label for="mfp_custom_message">Custom message</label></th>
<td>
<input name="mfp_custom_message"
type="text"
id="mfp_custom_message"
value="<?php echo esc_attr( get_option( 'mfp_custom_message' ) ); ?>"
class="regular-text">
<p class="description">Zadejte vlastní zprávu, kterou chcete zobrazit v patičce stránky.</p>
</td>
</tr>
</table>
<?php submit_button( '保存更改' ); ?>
<input type="hidden" name="trp-form-language" value="cs"/></form>
</div>
<br /><?php
} Vydávání a údržba pluginů
Po dokončení vývoje pravděpodobně budete chtít své výsledky sdílet s ostatními nebo je nasadit do produkčního prostředí. K tomu budou zapotřebí některé další kroky, které zajistí kvalitu a udržovatelnost vašeho pluginu.
Příprava na internacionalizaci a lokalizaci
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 by měly být zabaleny pomocí funkcí pro překlad v WordPressu.
Změňte všechny předchozí výstupní texty například následovně:
echo '<p>' . esc_html__( '感谢使用我的第一个插件!', 'my-first-plugin' ) . '</p>'; Používejte to v popisu pluginu a ve funkcích.__()或_e()Poté můžete použít nástroje, jako je Poedit, k vytvoření těchto funkcí..potŠablonový soubor, který mají překladatelé použít k vytvoření překladu..po和.moJazykové soubory.
Bezpečnost kódu a optimalizace výkonu
Bezpečnost je velmi důležitá. Vždy provádějte ověřování (validation) a čištění (sanitization) uživatelského vstupu, stejně jako escapeování (escaping) výstupních dat. Pro prevenci podvodných požadavků ze strany uživatelů (cross-site requests – CSRF) používejte náhodné hodnoty (nonces) poskytované WordPressem, a pro ověřování oprávnění uživatelů využívejte funkce určené k kontrole jejich schopností (capability checks).
Z hlediska výkonu je důležité rozumně využívat funkci „Transients API“ v WordPressu k ukládání výsledků náročných dotazů do mezipaměti, aby se při každém načtení stránky nemusely opakovat složité operace s databází. Zároveň je nutné správně uspořádat pořadí vykonávání skriptů a stylů (použít vhodné algoritmy pro jejich spouštění).wp_enqueue_script和wp_enqueue_style…) a určete závislosti.
Závěr
Vývoj pluginů pro WordPress je proces přeměny nápadů na funkční řešení, který vyžaduje, aby vývojáři byli obeznámeni s PHP, základními API WordPressu a dobrými postupy softwarového inženýrství. Od nastavení prostředí, psaní základních souborů pluginů, přes využití hooků k rozšíření funkcí, vytváření uživatelských rozhraní pro nastavení až po přípravu k publikování, je každý krok velmi důležitý. Dodržování bezpečnostních pravidel kódování, příprava na internacionalizaci a optimalizace výkonu udělají váš plugin profesionálnějším a spolehlivějším. Neustálé studium dokumentace WordPress Codex a dalších vývojářských zdrojů je klíčem k neustálému zlepšování dovedností v vývoji pluginů.
Časté dotazy
Jaké základní znalosti jsou potřebné k vývoji pluginů pro WordPress?
Potřebujete mít solidní základy programování v PHP, protože WordPress a jeho pluginy jsou převážně napsány v PHP. Zároveň je nutné mít základní znalosti HTML, CSS a JavaScriptu, abyste mohli pracovat s front-end rozhraním a interakcemi uživatelů. Porozumění základním konceptům databáze MySQL (např. dotazům) by také bylo užitečné, avšak funkce WordPressu…WP_QueryVětšina operací s databází je již zabalená (tj. předvedena v formě konkrétních funkcí nebo metod).
Jak ladit můj WordPress plugin?
Nejprve se ujistěte, že…wp-config.phpAktivováno v souboru.WP_DEBUG和WP_DEBUG_LOGTo zaznamená chyby, upozornění a varování PHP do…wp-content/debug.logSoubor je uložen v počítači a není zobrazen na stránce. Dále lze použít…error_log()Funkce vypisuje vlastní laděcí informace. Kromě toho jsou konzola a kartice „Síť“ v nástrojích pro vývojáře prohlížečů zásadní pro ladění JavaScriptu a AJAX požadavků.
Jak je můj plugin kompatibilní s tématem nebo jinými pluginy?
Pro maximální zajištění kompatibility vždy používejte oficiální API a funkce poskytované WordPressem a vyhýbejte se neveřejným funkcím nebo přímému manipulování s databází. Pro své funkce, třídy a proměnné používejte jedinečné předpony (stejně jako v našem příkladu).mfp_…) za účelem zabránění konfliktů mezi názvy. Pokud je to možné, poskytněte filtry.apply_filtersUmožňujete ostatním vývojářům upravovat chování vašeho pluginu a s opatrností spouštíte své vlastní rozšiřitelné akce (extensible actions).do_action)。
Jak bych měl distribuovat a prodávat své pluginy?
Pro bezplatné pluginy je nejjednodušší způsob jejich odeslání do oficiálního adresáře WordPress pluginů. K tomu je potřeba dodržovat příslušné pokyny a ujistit se, že kód splňuje stanovené standardy. U pokročilých (placených) pluginů můžete jejich prodej provádět na vlastní webové stránce prostřednictvím digitálních obchodů, jako je Easy Digital Downloads nebo WooCommerce. Bez ohledu na způsob je klíčem k úspěchu poskytování jasných dokumentací, včasné podpory při aktualizacích a bezpečného kódu.
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.
- Kompletní průvodce VPS hostiteli: Vytvoření webové stránky od nuly a snadné dosažení růstu podnikání
- Proč jste si vybrali WordPress jako platformu pro své webové stránky?
- 10 nezbytných pluginů pro WordPress, které zlepší výkon a bezpečnost vašeho webu
- Doporučení 10 nejlepších WordPress pluginů pro rok 2026 – zlepšení výkonu a bezpečnosti webových stránek
- Podrobný rozbor WooCommerce: Vytvoření výkonného e-shopu na WordPressu od nuly