In de huidige internetwereld heeft WordPress dankzij zijn grote uitbreidbaarheid een grote marktposities veroverd. Een van de belangrijkste troeven van WordPress is de mogelijkheid om via plugins bijna alle gewenste functies te toevoegen. Of het nu om simpele tools of om uitgebreide functies voor contentmanagementsystemen gaat, dit kan allemaal worden gerealiseerd met goed ontworpen plugins. Het beheersen van de technieken voor het ontwikkelen van plugins betekent dat je niet alleen maatgeschikte oplossingen kunt creëren voor je eigen of klantenprojecten, maar dat je je creativiteit ook kunt omzetten in verkochbare producten, waarmee je kunt deelnemen aan een brede markt.
Pluginontwikkelingsomgeving en basis
Voordat je begint met het schrijven van een WordPress-plugin, is een stabiele en efficiënte lokale ontwikkelomgeving essentieel. We raden aan om tools als Local by Flywheel, Laragon of Docker te gebruiken om snel een WordPress-omgeving op tezetten met PHP, MySQL en Apache/Nginx. Dit zorgt ervoor dat je kunt testen en debuggen in een veilig en geisoleerd milieu.
Maak je eerste pluginbestand.
Een plugin kan zo simpel zijn dat het maar één bestand bevat, maar voor het behouden van een standaardstructuur beginnen we met een basisontwerp. Ga naar het installatieverlies van WordPress. wp-content/plugins Maak een nieuwe map, bijvoorbeeld... my-first-plugin。
Aanbevolen leesmateriaal Een introductie tot het ontwikkelen van WordPress-plug-ins: bouw je eerste functionele uitbreiding vanaf nul.。
In deze map moet je een hoofdplugin-bestand maken, dat meestal de naam van het plugin draagt. my-first-plugin.phpElk plugin moet een standaard commentaar in de kop van het plugin bevatten; dit is de enige manier voor WordPress om informatie over het plugin te herkennen.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习 WordPress 插件开发的基础插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Na het opslaan van deze bestand, ga je naar de “Plugins”-pagina in het WordPress-administratiepaneel. Hier moet je je plugin zien staan in de lijst met beschikbare plugins. Je kunt het activeren net zoals je andere plugins aktiveert. Hoewel het momenteel nog geen functies heeft, heb je al de eerste stap gezet. Voor de verdere ontwikkeling is het handig om een duidelijke directorystructuur op te bouwen in de map met je plugin. admin/(Back-end-related code)public/(Front-end-related code)includes/(Kernfuncties en klassenbibliotheken), evenals voor het opslaan van JavaScript- en CSS-bestanden assets/ Mappen.
Core development concepts: Hooks and actions
Nu we de basisstructuur van plugins begrijpen, moeten we verder naar de essentie van het WordPress-plugin-systeem: de hooks. Er zijn twee soorten hooks: actions en filters. Ze vormen de kern van de event-driven architectuur van WordPress en bieden je de mogelijkheid om je code op specifieke momenten te integreren in de kernprocessen van WordPress.
Het begrijpen van action hooks
Action hooks bieden je de mogelijkheid om op bepaalde momenten in het levenscyclus van WordPress aangepaste code uit te voeren. Bijvoorbeeld wanneer een artikel wordt gepubliceerd of wanneer een gebruiker inlogt, worden de corresponderende action hooks geactiveerd.
Gebruik add_action() Deze functie kan je eigen functie monteren op een specifiek gekozen ‘hook’. De basisgrammatiek is als volgt:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args );Laten we een rij met aangepaste tekst toevoegen aan de voet van de website-pagina.
Aanbevolen leesmateriaal WordPress-pluginontwikkeling van het begin tot de volmaaktheid: een volledig handboek voor het bouwen van hoogwaardig, maakbare functionaliteiten。
function myplugin_add_footer_text() {
echo '<p id="custom-footer">Fijn dat je deze website gebruikt! De inhoud is toegevoegd door mijn plugin.</p>';
}
add_action( ‘wp_footer’, ‘myplugin_add_footer_text’ ); Nadat je de plugin hebt geactiveerd met de bovenstaande code, zie je dat deze tekst is toegevoegd aan de voet van de website. Dit is een typisch voorbeeld van een action hook: code wordt op een specifieke plek uitgevoerd zonder de oorspronkelijke gegevens te veranderen; er wordt alleen iets “uitgegeven” of “uitgevoerd”.
De filterhooks beheersen
In tegenstelling tot acties, worden filterhaken gebruikt om gegevens te bewerken. Ze bieden je de mogelijkheid om gegevens te veranderen voordat deze worden gebruikt (bijvoorbeeld worden opgeslagen in een database of weergegeven in een browser). WordPress stuurde de gegevens naar je door middel van filters; jij bewerkt deze gegevens en stuurt ze daarna terug.
Gebruik add_filter() Er zijn functies beschikbaar om filters te toepassen. Denk bijvoorbeeld aan een functie die het einde van een artikelstitel kan bewerken door er een aangepaste suffix aan te toevoegen.
function myplugin_modify_title( $title ) {
// 确保只在主循环且在前端单篇文章页面修改
if ( is_single() && in_the_loop() ) {
return $title . ‘ - 精彩内容’;
}
return $title;
}
add_filter( ‘the_title’, ‘myplugin_modify_title’ ); In dit voorbeeld:the_title De filter zal de titel van het huidige artikel weergeven. $title De function die aan u wordt overgedragen myplugin_modify_titleNadat je de string hebt gewijzigd en de nieuwe string hebt teruggegeven, gebruikt WordPress deze gewijzigde waarde voor de weergave. Het begrijpen en vloeiend gebruiken van actions en filters is de sleutel om de oneindige mogelijkheden van WordPress voor personalisatie te ontwikkelen.
Constructeer een plugin-functie: voeg een beheermenu en opties toe.
Een volwassen plugin moet in principe zijn eigen configuratiepagina hebben in het WordPress-beheerderspaneel, zodat gebruikers verschillende instellingen kunnen aanpassen. Dit vereist toegang tot de menu-API van WordPress.
Een top-level beheermenu maken
Je kunt gebruikmaken van add_menu_page() Deze functie voegt een bovenste menu-item toe aan je plugin. De functie bepaalt de titel van het menu, de vereiste toegangsrechten, de URL-adres en andere informatie, en maakt deze verbonden met een callback-functie die de inhoud van de pagina weergeeft.
Aanbevolen leesmateriaal Een introductie tot het ontwikkelen van WordPress-plug-ins: bouw je eerste functionele uitbreiding vanaf nul.。
function myplugin_add_admin_menu() {
add_menu_page(
‘我的插件设置’, // 页面标题
‘我的插件’, // 菜单标题
‘manage_options’, // 所需权限(管理员)
‘myplugin-settings’, // 菜单 Slug
‘myplugin_display_settings_page’, // 显示页面的函数
‘dashicons-admin-generic’, // 菜单图标(Dashicon)
100 // 菜单位置
);
}
add_action( ‘admin_menu’, ‘myplugin_add_admin_menu’ );
function myplugin_display_settings_page() {
?>
<div class="“wrap”">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<form action="/nl/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
<?php
// 输出设置字段、非ce等
settings_fields( ‘myplugin_options_group’ );
do_settings_sections( ‘myplugin-settings’ );
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Voeg de bovenstaande code toe aan je plugin. Nadat je het hebt aktiveerd, zie je op de linkerkant van het WordPress-administratiepaneel een nieuwe menuoptie genaamd “Mijn plugins”. Als je daarop klikt, kom je bij de inhoud van je plugin terecht. myplugin_display_settings_page De pagina die wordt weergegeven door de function.
Registreer je opties met de Setup API
Het handmatig verwerken en controleren van formulierinzendingen is tijdrovend en onveilig. WordPress biedt de krachtige Settings API aan om dit proces te vereenvoudigen. De API is verantwoordelijk voor de nonce-verificatie van formulieren, het controleren van toegangsrechten en het opslaan van gegevens.
Allereerst moet je gebruikmaken van... register_setting() Registreer je instellingengroepen en velden en gebruik ze vervolgens. add_settings_section() Voeg een instellingengebied toe en gebruik dit. add_settings_field() Vul de specifieke velden in.
function myplugin_register_settings() {
// 注册一组设置,数据将保存在 `myplugin_options` 选项中
register_setting(
‘myplugin_options_group’, // 设置组名,与 settings_fields() 对应
‘myplugin_options’, // 选项名
‘myplugin_sanitize_callback’ // 数据清理回调函数(可选但推荐)
);
// 添加一个设置区域
add_settings_section(
‘myplugin_main_section’,
‘主要设置’,
null, // 区域描述的回调函数
‘myplugin-settings’ // 页面 Slug
);
// 在区域中添加一个文本字段
add_settings_field(
‘myplugin_text_field’,
‘欢迎语’,
‘myplugin_text_field_render’, // 渲染字段输入框的函数
‘myplugin-settings’,
‘myplugin_main_section’
);
}
add_action( ‘admin_init’, ‘myplugin_register_settings’ );
function myplugin_text_field_render() {
$options = get_option( ‘myplugin_options’ );
$value = $options[‘myplugin_text_field’] ?? ‘’;
?>
<input type=“text” name=“myplugin_options[myplugin_text_field]” value=“<?php echo esc_attr( $value ); ?>”>
<?php
}
function myplugin_sanitize_callback( $input ) {
// 清理和验证输入数据
$sanitized_input = [];
if ( isset( $input[‘myplugin_text_field’] ) ) {
$sanitized_input[‘myplugin_text_field’] = sanitize_text_field( $input[‘myplugin_text_field’] );
}
return $sanitized_input;
} Nu beschikt je instellingenpagina over een tekstveld met verificatie- en opslagmogelijkheden. Met de Settings API kun je veilig en efficiënt complexe configuratieinterfaces bouwen.
Plugin-publicatie en onderhoud
Als je plugin volledig is uitgewerkt en goed getest, kun je erover nadenken om het met anderen te delen. Hiervoor moet je de code internationaal maken, de beveiliging versterken en de plugin voor publicatie voorbereiden.
Internationalisatie van plugins realiseren
Om je plugin te kunnen gebruiken door gebruikers die geen Chinees spreken, moet je alle teksten die gericht zijn naar de gebruiker omhullen met de internationaleisering (i18n)-functies van WordPress. Hieronder valt vooral: __() Gebruikt voor het weergeven van de vertaling._e() Gebruikt voor de directe weergave van de vertaling.
Allereerst: wijzig alle strings in je code.
// 在插件头部注释中,确保 Text Domain 正确
// 在代码中
function myplugin_display_settings_page() {
?>
<h1><?php _e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
<?php
} Vervolgens gebruik je een tool als Poedit om je plugin-code te scannen, waarna de benodigde informatie wordt generereerd. .pot(Template) file, and create it for the base language (such as English). .po En de gecompileerde versie .mo Deze taalbestanden moeten worden opgeslagen in de map van het plugin. languages/ De vertalingen zijn te vinden in de map. WordPress laadt automatisch de juiste vertalingen op op basis van de taainstellingen van de website.
Zorgen voor de veiligheid en de prestaties van het code
Voor het publiceren moet de veiligheid van de code altijd worden gecontroleerd. Gebruik voor alle invoer en uitvoer van gebruikers de toepasselijke WordPress-functies voor het schoonmaken van gegevens. esc_html(), esc_attr(), sanitize_text_field() 和 wp_kses_post()Tijdens een database-oproep wordt gebruik gemaakt van... $wpdb Methoden van een klasse WP_QueryVermeid het rechtstreekse samenvoegen van SQL-opdrachten om injectieaanvallen te voorkomen.
Vergeet ook niet om de prestaties te optimaliseren. Gebruik hooks verstandig, zodat er niet te veel onnodige acties worden uitgevoerd bij elke pagina-laad. Voor complexe query-resultaten kun je het Transients-API van WordPress gebruiken om deze te cachen. set_transient() 和 get_transient()。
Ten slotte moet je de officiële WordPress-pluginontwikkelingsrichtlijnen en -structuur naleven en duidelijke documentatie en een README-bestand opstellen. Je kunt je plugin indienen in de officiële WordPress.org-plugincatalogus, zodat gebruikers je plugin direct in het administratieve paneel kunnen vinden en installeren, en automatische updates kunnen ontvangen.
Samenvatting
Het ontwikkelen van WordPress-plug-ins begint met het begrijpen van de basisstructuur, gevolgd door het verkennen van het hook-systeem en het bouwen van een gebruikersinterface. Uiteindelijk leidt dit tot het maken van veilige en internationaal beschikbare plug-ins. In dit artikel hebt u geleerd hoe u vanaf het maken van uw eerste lege plug-in functionaliteiten kunt uitbreiden met action- en filter-hooks, professionele achtergrondinstellingen kunt bouwen met de Settings API, en hoe u zich voorbereidt op het publiceren van uw plug-in. Het belangrijkste is om te oefenen: begin met een simpel idee, itereren steeds verder, en make gebruik van de uitgebreide API en community-resources van WordPress. Zo kunt u een krachtige en professionele plug-in maken die perfect past bij uw WordPress-website – of zelfs een waardevol product ontwikkelen.
Veelgestelde vragen (FAQ)
Welke voorwaartse kennis is vereist om een WordPress-plugin te ontwikkelen?
Je moet basiskennis hebben van PHP-programmering, waaronder variabelen, functies, arrays en de fundamentele concepten van objectgericht programmaeren. Het is ook belangrijk om een basiskennis te hebben van HTML, CSS en JavaScript, omdat je met deze technologieën de front-end-weergave en interactie moet beheersen. Het is een voorwaarde om de basisfuncties van WordPress en de backend-interface te begrijpen, om de werking van plugins te kunnen begrijpen.
Wat is het verschil tussen plugins en thema's? Wanneer moet je een plugin ontwikkelen?
Het thema bepaalt voornamelijk het uiterlijk en de lay-out van een website, terwijl plugins worden gebruikt om extra functies toe te voegen. Een eenvoudig principe om te bepalen of een functie tot het thema behoort of tot een plugin is: als de functie sterk gerelateerd is aan het visuele ontwerp van de website, dan hoort ze waarschijnlijk tot het thema; als de functie onafhankelijk is en nog steeds kan worden gebruikt nadat het thema is gewijzigd (bijvoorbeeld contactformulieren, SEO-optimalisatie of caching), dan moet de functie als plugin worden ontwikkeld. Het naleven van het principe “functies in plugins, stijl in thema’s” is gunstig voor de langtermijnse onderhoud en upgraden van de website.
Hoe debug ik mijn WordPress-plugin?
Allereerst: wp-config.php De WordPress-debogagemode is in het bestand ingeschakeld. WP_DEBUG De constante is ingesteld op... trueDit zal PHP-fouten, waarschuwingen en berichtgeving weergeven op de pagina. Daarnaast wordt… error_log() De functie schrijft aangepaste debug-informatie in het foutenlog van de server. Voor complexe logica kun je professionele debug-hulpmiddelen gebruiken, zoals Xdebug, en in combinatie met de instellingen van een IDE pauzes (breakpoints) instellen om de code stap voor stap te debuggen. De Console- en Network-tabbladen in de browser-developer-tools zijn zeer handig voor het debuggen van front-end JavaScript en AJAX-verzoeken.
Hoe kan mijn plugin worden gecombineerd met andere plugins?
Om de compatibiliteit te maximaliseren, moet je plugin alle functies, klassen, constanten, optienamen en database-tabellen voorzien van een unieke prefix. Dit voorkomt namelijk namenconflicten. Gebruik globale variabelen met voorzichtigheid. Stel bij het toevoegen van hooks de prioriteitsparameters zorgvuldig in, zodat de uitvoeringsvolgorde zoals verwacht is. Voor gegevens die door andere plugins kunnen worden gewijzigd, moet je code voldoende robuust zijn om alle mogelijke invoeromstandigheden te kunnen verwerken. Voer voor het publiceren van je plugin testen uit in verschillende omgevingen en in combinatie met veelgebruikte plugins.
Hoe voeg ik een aangepaste database-tabel toe aan mijn plugin?
Hoewel WordPress dit biedt… wp_options Het zijn instellingen voor het opslaan in tabellen, maar voor grote hoeveelheden gestructureerde data is het beter om gebruik te maken van aangepaste database-tabellen voor een betere prestatie. Je kunt dit doen door gebruik te maken van de hook-functies bij het activeren van plugins. register_activation_hook() Schrijf de SQL-code om de tabel te creeren in de functie voor registratie van functies. Vergeet niet dit te gebruiken. $wpdb->prefix Om het juiste prefix te verkrijgen en dit te gebruiken... dbDelta() Er is een functie beschikbaar voor het creeren of bijwerken van tabellen, die intelligent omgaat met verschillen in de structuur van de tabellen. Tevens moet worden rekening gehouden met het verwijderen van deze gegevens wanneer de plugin wordt afgezet, waardoor de gebruiker de mogelijkheid krijgt om een keuze te maken.
De volgende stap, wat moeten we als volgende doen?
Voor meer informatie en praktische kennis
De volgende content is relevant voor het onderwerp van dit artikel en is geschikt voor verder lezen. Het kan vaak effectief zijn om eerst het artikel te lezen dat het dichtst bij uw huidige vraagstuk staat en vervolgens geleidelijk aan artikelen over aanverwante onderwerpen te bekijken.
- Hoe kies je en maak je je eigen perfecte WordPress-thema?
- WordPress-pluginontwikkelingsgids: van nul tot één: maak je eerste eigen plugin
- Werken als WordPress-pluginontwikkelaar: een volledig handboek van nul tot één
- Van nul naar één: een volledige handleiding en praktische tips voor het bouwen van professionele websites met WordPress.
- Volledig handboek voor het ontwikkelen van WordPress plugins: van het begin tot de volmaakte beheersing van professionele uitbreidingen