Forbereiden van de ontwikkelingsomgeving voor WordPress plugins
Voordat je met het schrijven van code begint, is een stabiele en geisoleerde ontwikkelingsomgeving van belang. Dit beschermt niet alleen je live-site, maar biedt je ook de vrijheid om te testen en te debuggen. De meest aanbevolen manier is om een lokale ontwikkelingsomgeving te gebruiken, zoals Local by Flywheel, XAMPP of MAMP. Met deze tools kun je in één stap de vereiste PHP-, MySQL- en webserver-apparaten op je lokale computer installeren.
Volgens de instructies moet je nu de debugmodus activeren in je lokale WordPress-installatie. Dit helpt je om fouten snel op te sporen tijdens het ontwikkelen. Open de map waarin WordPress is geïnstalleerd (de root-map van WordPress). wp-config.php Vind of voeg de volgende constantedefinities toe in het bestand:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); Na deze instellingen worden alle fouten en waarschuwingen vastgelegd in /wp-content/debug.log De inhoud van de bestand wordt niet rechtstreeks op de pagina weergegeven, waardoor de gebruiker op de front-end niet wordt beïnvloed.
Aanbevolen leesmateriaal Een introductie tot het ontwikkelen van WordPress-plug-ins: maak je eerste aangepaste plug-in vanaf nul.。
Ten slotte heb je een code-editor nodig. Visual Studio Code, PhpStorm of Sublime Text zijn allemaal uitstekende keuzen; ze bieden goede ondersteuning voor PHP- en WordPress-ontwikkeling, met onder andere syntax-highlighting en codevoorstellen. Zorg ervoor dat je editor gemakkelijk toegang heeft tot de projectbestanden op je lokale server.
Maak je eerste plugin.
Een WordPress-plugin is in feite één of meerdere bestanden die zich bevinden in een specifieke map in het WordPress-installatiepad. wp-content/plugins De PHP-bestanden in de map. Elke plugin moet een hoofdbestand hebben, en de inhoud van dit hoofdbestand moet de standaardcommentaren met plugin-informatie bevatten, zodat WordPress de plugin kan herkennen.
Schrijf de headerinformatie voor het plugin
In jouw... wp-content/plugins In de map maak je een nieuwe map, bijvoorbeeld... my-first-pluginIn deze map moet je een hoofdbestand (main file) maken. my-first-plugin.phpDe opening van het bestand moet een commentaar bevatten in het volgende format:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的简单 WordPress 插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ In deze commentaar is “Plugin Name” een vereiste invoer; alle overige onderdelen zijn optioneel. WordPress leest deze gegevens en toont ze op de backend-pagina voor het beheer van plugins.
Een eenvoudige functie implementeren
Laten we nu de eerste echte functionaliteit toevoegen aan deze plugin: automatisch een op maat gemaakt tekstfragment toevoegen aan het eind van de artikelinhoud. We gaan dit doen met... the_content Deze filterhook.
Aanbevolen leesmateriaal Van beginners tot experts in het ontwikkelen van WordPress-plug-ins: praktijkervaring en gedeelde kerntechnieken。
Under de headercommentatie, voeg de volgende code toe:
function myfp_add_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Dank u voor het lezen van dit artikel, gepresenteerd door “Mijn eerste plugin”.</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter( 'the_content', 'myfp_add_text_to_content' ); Na het opslaan van het bestand, ga je naar de “Plugins”-pagina in het WordPress-administratiepaneel. Hier moet je “Mijn eerste plugin” zien. Activeer dit plugin en kijk vervolgens bij een artikel op de website. Je ziet dat de tekst die we hebben gedefinieerd aan het eind van het artikel is toegevoegd.myfp_add_text_to_content Dit is een door ons gedefinieerde functie.add_filter() Mount it to... the_content Op de haak. De condities binnen de functie zorgen ervoor dat deze tekst alleen wordt weergegeven in de hoofdloop van de individuele artikelpagina op de frontend.
De kernmechanismen van WordPress-plug-ins begrijpen
De krachtige en flexibele basis van WordPress-plug-ins is het hook-systeem. Hooks bieden de mogelijkheid om je eigen code op bepaalde punten in de uitvoering van het kernprogramma van WordPress in te voegen, waardoor je de standaardwerking kunt veranderen of uitbreiden. Er zijn voornamelijk twee soorten hooks: Action Hooks en Filter Hooks.
Action hooks en filter hooks
Action-haken (Action Hooks) bieden je de mogelijkheid om zelfgemaakte code uit te voeren wanneer een bepaald evenement plaatsvindt, bijvoorbeeld wanneer een artikel wordt gepubliceerd of wanneer de beheerpagina wordt geladen. Er wordt geen teruggegeven waarde vereist. add_action() Een functie wordt gebruikt om bepaalde acties uit te voeren, bijvoorbeeld wanneer een plugin wordt aktiveerd.
function myfp_plugin_activation_task() {
// 创建数据库表、初始化选项等
update_option( 'myfp_plugin_installed', '2026-01-01' );
}
register_activation_hook( __FILE__, 'myfp_plugin_activation_task' ); Hier is gebruik gemaakt van… register_activation_hookHet is een speciale actie-haak die speciaal is ontworpen voor het activeren van plugins.
De filter-haak (Filter) biedt je de mogelijkheid om de gegevens die aan hem worden overgedragen te bewerken. De functie die wordt gebruikt moet een waarde accepteren en een gewijzigde waarde teruggeven. Het voorbeeld waarin we de inhoud van een artikel hebben gewijzigd, is een typisch voorbeeld van een filter. Een ander voorbeeld is het bewerken van de lengte van een artikelverslag.
Aanbevolen leesmateriaal WordPress-pluginontwikkeling beheersen: een volledig praktisch handboek van nul tot één。
function myfp_custom_excerpt_length( $length ) {
return 20; // 将摘录长度改为20个单词
}
add_filter( 'excerpt_length', 'myfp_custom_excerpt_length' ); Dynamic content wordt toegevoegd met behulp van shortcodes.
Naast hooks zijn shortcodes een ander krachtig hulpmiddel voor de interactie tussen plugins en content. Ze bieden gebruikers de mogelijkheid om door een eenvoudige tag in een artikel of pagina in te voegen… [my_shortcode]Om de complexe inhoud die door de plugin is gecreëerd op te roepen…
Het is heel simpel om een kort stuk code te maken; je kunt hierbij verschillende programmeeringsmogelijkheden gebruiken. add_shortcode() Functionen. Als voorbeeld: een kort stuk code om de huidige tijd aan te tonen:
function myfp_current_time_shortcode( $atts ) {
$atts = shortcode_atts( array(
'format' => 'Y-m-d H:i:s',
), $atts, 'current_time' );
return date( $atts['format'] );
}
add_shortcode( 'current_time', 'myfp_current_time_shortcode' ); Gebruikers kunnen tekst invoeren in de editor. [current_time format="H:i"] Toon alleen de uren en minuten.
Een beheerpagina toevoegen voor de plugin
Veel plugins vereisen het aanbieden van instellingen, die meestal worden geregeld via de beheermenu-pagina in het WordPress-administratiepaneel. WordPress biedt een reeks functies om bovenste menu-items of submenu-items toe te voegen.
Maak een pagina voor het instellen van plugins.
We zullen een eenvoudige instellingenpagina toevoegen aan het plugin, waarmee de tekstinhoud die eerder aan het eind van de artikelen is toegevoegd kan worden beheerd. Eerst gaan we… add_menu_page() 或 add_options_page() Er bestaan functies om pagina's te registreren. Meestal worden eenvoudige plugins gebruikt om pagina's toe te voegen aan het submenu “Instellingen”.
Voeg de volgende code toe in het hoofdbestand van het plugin:
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 所需权限
'myfp-settings', // 菜单slug
'myfp_settings_page_html' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' ); Deze code vertelt WordPress dat, wanneer het administratieve menu wordt gemaakt,admin_menu Actie (handeling), uitvoeren myfp_add_admin_menu Een functie om een pagina te toevoegen.
Construct een formulier voor de instellingenpagina
Volgens de opgegeven tekst moeten we eerst de volgende stappen uitvoeren: myfp_settings_page_html De functie genereert het HTML-content van de pagina en verzorgt de opslag van de formulieren. Voor het veilig opslaan van de instellingen gebruiken we WordPress. options API.
function myfp_settings_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交
if ( isset( $_POST['myfp_footer_text'] ) ) {
update_option( 'myfp_footer_text', sanitize_textarea_field( $_POST['myfp_footer_text'] ) );
echo '<div class="notice notice-success"><p>De instellingen zijn gespeeld!</p></div>';
}
// 获取现有值
$current_text = get_option( 'myfp_footer_text', '感谢阅读本文,由“我的第一个插件”为您呈现。' );
?>
<div class="wrap">
<h1>Mijn eerste plugin-instellingen</h1>
<form method="post" action="">
<?php wp_nonce_field( 'myfp_settings_action', 'myfp_settings_nonce' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="footer_text">Tekst in de voetnoot van het artikel</label></th>
<td>
<textarea name="myfp_footer_text" id="footer_text" rows="4" cols="50" class="large-text"><?php echo esc_textarea( $current_text ); ?></textarea>
<p class="description">Deze tekst zal worden weergegeven aan het eind van elke artikel.</p>
</td>
</tr>
</table>
<?php submit_button(); ?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Ten slotte: vergeet niet de functie die de inhoud van de artikelen eerder filterde te bewerken, zodat deze de mogelijkheden uit de opties kan gebruiken. myfp_footer_text De tekst wordt gelezen uit een bestand in plaats van uit een hardgecodeerde string. Hiermee is een backend-instellingsscherm met basisbeheerfuncties klaar.
Samenvatting
Door de stappen in dit artikel hebt u vanaf nul een volledig functionerende WordPress-plugin gemaakt. U hebt geleerd hoe u een ontwikkelomgeving opzet, de basisstructuur van een plugin maakt, gebruikmaakt van de hook-mechanismen van WordPress (actions en filters) om functies uit te breiden, shortcodes implementeert en een backend-beheerinterface bouwt. Het essentieel van pluginontwikkeling is om de werking van hooks en event-driven programming te begrijpen; dit geeft u de mogelijkheid om het gedrag van WordPress diep te personaliseren zonder de kerncode te hoeven aanpassen. Vergeet niet dat een goede codestructuur, veilige verwerking van invoer en uitvoer, en ondersteuning voor internationalisatie de basis vormen voor het ontwikkelen van kwalitatief goede plugins. Nu kunt u proberen om meer functies toe te voegen aan uw plugin, zoals aangepaste artikeltypen, widgets of REST API- endpoints, en zo de oneindige mogelijkheden van de WordPress-ecosysteem te ontdekken.
Veelgestelde vragen (FAQ)
Moet een plugin maar één PHP-bestand hebben?
Niet altijd. Een plugin kan bestaan uit één enkele PHP-fail, maar voor complexere plugins is een modulaire structuur aan te raden. Je kunt verschillende functionaliteiten opdelen in aparte klassen of bestanden; het hoofdbestand is alleen verantwoordelijk voor het invoeren van deze bestanden en het initialiseren van de plugin. Dit bevordert de onderhoud en organisatie van het codebestand. Bijvoorbeeld, je kunt… includes/ De map bevat functieklassen.admin/ De map bevat de code die betrekking heeft op de achtergrondafwikkelingen (de backend).public/ De inhoud van de map bevat de front-end-logica.
Hoe moet je veilig omgaan met gebruikersinvoer in plugins?
Wanneer je met gebruikersinvoer werkt (zoals formuliergegevens of URL-parameters), is het essentieel om deze gegevens te valideren, te reinigen en te ontsnappen (escapen). Voor gegevens die worden opgeslagen in een database, moet dit ook worden gedaan. sanitize_text_field()、sanitize_textarea_field()、intval() Verzorg ervoor dat functies worden gereinigd. Wanneer de data wordt weergegeven op een HTML-pagina, moet dit op de juiste manier worden gedaan. esc_html()、esc_attr()、esc_url() 或 wp_kses() Een escape-methode wordt gebruikt om cross-site scripting (XSS)-aanvallen te voorkomen.
Hoe debug je code tijdens het ontwikkelen van plugins?
Naast het activeren... WP_DEBUG Daarnaast kun je ook gebruikmaken van... error_log() De functie registreert de aangepaste informatie in het debug-log. Dit is handig voor het controleren van de waarden van variabelen.var_dump() 或 print_r() Combineer die() Het is een snelle, maar grove methode. Het wordt aanbevolen om de functies van WordPress zelf te gebruiken. wp_die() 和 wp_send_json()(Dit wordt gebruikt voor AJAX-foutopsporing.) Daarnaast bieden professionele foutopsporingstools zoals Query Monitor een heldere weergave van informatie over databasequery's, hooks, scripts en andere processen die tijdens het uitvoeren van het programma plaatsvinden.
Hoe maak ik mijn plugin multilingual?
Om het gebruik van plugins te ondersteunen voor internationaal gebruik (i18n) is het nodig om de vertaalfuncties van WordPress te gebruiken. Eerst moet dit in de commentaren bovenin het plugin worden goed ingesteld. Text Domain(Zoals ‘my-first-plugin’). In het code, moet voor alle tekststrings die worden gebruikt door de gebruiker worden gebruikt... () 或 _e() Functionen kunnen worden 'gepakt' (of: omgevuld in een specifieke structuur), bijvoorbeeld: ( ‘Hello World’, ‘my-first-plugin’ )Vervolgens worden tools als Poedit gebruikt om de tekst te genereren. .pot Templatebestanden: vertalers kunnen er mee verschillende talenversies van een tekst van maken. .po 和 .mo De bestanden worden opgeslagen in de plugin. languages/ In de map.
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.
- WordPress-pluginontwikkelingsgids: van nul tot één: maak je eerste eigen plugin
- Werken als WordPress-pluginontwikkelaar: een volledig handboek van nul tot één
- Volledig handboek voor het ontwikkelen van WordPress plugins: van het begin tot de volmaakte beheersing van professionele uitbreidingen
- WordPress-pluginontwikkeling: van het begin tot de volmaaktheid: bouw je eerste eigen plugin
- Van nul naar één: een volledig handboek voor het stappen voor stappen ontwikkelen van je eerste WordPress-plugin