Van nul af WordPress-pluginontwikkeling meesteren: een volledig handboek met praktische oefeningen

3 minuten leestijd
2026-03-15
2026-06-03
2,900
Ik verdien commissies wanneer je via de onderstaande links winkelt, zonder dat dit extra kosten voor jou met zich meebrengt.

WordPress plugins zijn een belangrijke manier om de kernfuncties van WordPress uit te breiden. Ze bieden ontwikkelaars de mogelijkheid om bijna alle gewenste functies toe te voegen aan een website, zonder de kerncode te hoeven aanpassen. Of het nu om simpele shortcodes gaat of om complexe e-commerce-systemen – alles kan met plugins worden gerealiseerd. Door het begrijpen van pluginontwikkeling kun je specifieke behoeften op maat invullen, herbruikbare functionaliteiten creeren of zelf producten ontwikkelen. In dit artikel worden je van de basisconcepten tot de praktische ontwikkeling geleid, zodat je de essentiële technieken van WordPress-pluginontwikkeling onder de knie krijgt.

Basics van WordPress-pluginontwikkeling en voorbereiding van het omgeving

Voordat je de eerste regel code schrijft, moet je de basis van het plugin begrijpen en de ontwikkelomgeving opzetten.

De basisstructuur van een plugin en de organisatie van de bestanden

Een van de eenvoudigste WordPress-plug-ins bestaat uit slechts één bestand. Dit hoofdbestand moet specifieke kopnotities van de plug-in bevatten, zodat WordPress de informatie van de plug-in kan herkennen. Dit hoofdbestand wordt meestal de naam plugin.php gegeven. your-plugin-name.php

Aanbevolen leesmateriaal Eenvoudig en duidelijk: een complete handleiding voor het ontwikkelen van WordPress-plug-ins, vanaf nul.

De formatie van de commentaren in de kop van de plugin is als volgt:

UltaHost WordPress-hosting
30-daagse garantie voor het terugbetalen van het geld, onbeperkt bandbreedte- en databestand, gratis DDoS-beveiliging, en een prijsvoordeel van 50% bij een aankoop van 3 jaar.
<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://example.com/my-first-plugin
 * Description: 这是一个简单的插件描述。
 * Version:     1.0.0
 * Author:      你的名字
 * Author URI:  https://example.com
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 */

Deze commentaar bevat meta-informatie over de naam, versie en auteur van de plugin, waardoor het de “identiteitskaart” van de plugin wordt. De pluginbestanden moeten worden opgeslagen in een specifieke map of directory. /wp-content/plugins/ In de map kan zowel een apart PHP-bestand staan, als een map genaamd naar de naam van het plugin. De map bevat het hoofdbestand en andere bronnen.

Het opzetten van een lokale ontwikkelomgeving.

Een betrouwbare lokale ontwikkelomgeving is van essentieel belang. Het wordt aanbevolen om tools als Local by Flywheel, XAMPP of MAMP te gebruiken om snel een WordPress-omgeving op te zetten die PHP, MySQL en Apache/Nginx bevat. Daarnaast hebt u een code-editor nodig, zoals Visual Studio Code of PHPStorm, en moet u relevante plugins voor PHP- en WordPress-intelligente codeherkenning installeren om de ontwikkelingsefficiëntie te verbeteren.

Zorg ervoor dat je omgeving een PHP-versie gebruikt die overeenkomt met die van de doelserver (PHP 7.4 of hoger wordt aanbevolen), en installeer eventuele vereiste extensies of updates. wp-config.php Activeren in China WP_DEBUG Deze modus is bedoeld om fouten en waarschuwingen te kunnen opvangen tijdens het ontwikkelingsproces.

define( 'WP_DEBUG', true );

Core development concepts: Hooks en filters

De kernfilosofie van WordPress-pluginontwikkeling is “hooks”. Hierdoor kun je op specifieke momenten of op bepaalde plaatsen eigen code toevoegen, zonder de kernbestanden te hoeven aanpassen. Er bestaan twee soorten hooks: actions en filters.

Aanbevolen leesmateriaal WordPress-pluginontwikkeling vanaf nul: principes, praktijk en geavanceerde technieken

Het begrijpen van action hooks

Action hooks bieden je de mogelijkheid om op specifieke momenten in WordPress (bijvoorbeeld wanneer een artikel wordt gepubliceerd of de paginakop wordt geladen) eigen functies uit te voeren. add_action() De functie “monteert” je eigen functie op de hook.

Als bijvoorbeeld op de frontpage van een website… Je kunt enkele extra elementen toevoegen om de inhoud te verrijken. wp_head Action Hook:

function myplugin_add_custom_head_content() {
    echo '<meta name="my-custom-tag" content="Hello from my plugin">';
}
add_action( 'wp_head', 'myplugin_add_custom_head_content' );

Als WordPress dit punt bereikt… wp_head Wanneer de positie wordt bepaald, wordt de door ons gemonteerde component opgeroepen. myplugin_add_custom_head_content Functie.

hosting.com gedeelde hosting
Hoge prestaties met AMD EPYC CPU's, NVMe SSD opslag en LiteSpeed, 24/7 deskundige interne ondersteuning, geavanceerde beveiligingsmaatregelen waaronder SSL, bescherming tegen brute kracht, malware en DDoS, besparingen tot 73%

Het begrijpen van filterhooks

Filterhooks worden gebruikt om gegevens te bewerken. Ze bieden de mogelijkheid om gegevens te veranderen voordat deze worden gebruikt of opgeslagen in een database. add_filter() Een functie die wordt gebruikt om filters toe te passen.

Een klassiek voorbeeld is het aanpassen van de weergave van de artikeltitels. De onderstaande code voegt “Belangrijk:” voor aan alle artikeltitels:

function myplugin_prepend_to_title( $title ) {
    if ( is_single() ) {
        $title = '重要:' . $title;
    }
    return $title;
}
add_filter( 'the_title', 'myplugin_prepend_to_title' );

De functie ontvangt de oorspronkelijke titel als parameter en moet deze na modificatie teruggeven. Het WordPress-core en vele plugins bieden honderden acties en filterhaken aan; dit is de belangrijkste manier om plugins met het systeem te interacteren.

Aanbevolen leesmateriaal Ultimatum-handboek voor het ontwikkelen van WordPress-plug-ins: bouw je eerste plugin van scratch

Maak je eerste functionaliteitsplug-in.

Laten we met een volledig voorbeeld van praktische toepassing een plugin maken voor het schatten van de leestijd van artikelen. De plugin zal hookjes, shortcodes en instellingsopties samen gebruiken.

Het hoofdbestand van de plugin en de uitvoering van de functionaliteiten

Allereerst: /wp-content/plugins/ Een map (of folder) maken in een directory post-reading-timeEn daarin een hoofdbestand maken. post-reading-time.phpVul de informatie voor de kop van het plugin in.

InterServer gedeelde hosting
Shared hosting $2.50 USD per maand, eerste maand $0.1 USD promo code tryinterserver, 461 cloud apps scripts, een klik te installeren.

Volgens de opgave gaan we nu de kernfunctie implementeren. Deze functie berekent de tijd die nodig is om een artikel te lezen (op basis van een gemiddelde lees snelheid van 200 woorden per minuut) en returneert een geformatteerde string met deze informatie.

function prt_calculate_reading_time( $post_id ) {
    $post_content = get_post_field( 'post_content', $post_id );
    // 清除短代码和HTML标签,只计算纯文字
    $clean_content = strip_shortcodes( $post_content );
    $clean_content = wp_strip_all_tags( $clean_content );
    $word_count = str_word_count( $clean_content );

$reading_time = ceil( $word_count / 200 ); // 假设每分钟读200字

return sprintf(
        _n( '约 %d 分钟读完', '约 %d 分钟读完', $reading_time, 'post-reading-time' ),
        $reading_time
    );
}

De resultaten worden weergegeven met behulp van kortcodes en automatische injectie.

Om het voor gebruikers gemakkelijk te maken, bieden we twee manieren om de leesduur aan te tonen. De eerste manier is om een kort codefragment te gebruiken. [reading_time]

We gebruiken… add_shortcode() Functie voor het registreren van kortcodes:

function prt_reading_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'reading_time' );

return '<span class="post-reading-time">'`.prt_calculate_reading_time($atts['id'])`.'</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' );

Gebruikers kunnen in de artikelenrediger tekst invoegen. [reading_time] Het toont de tijd dat is verstreken sinds de huidige artikel is gelezen.

De tweede methode is om automatisch de lees tijd toe te voegen aan het eind van het artikel. Hiervoor is een bepaalde technologie of software nodig. the_content Filter Hook:

function prt_display_reading_time_after_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $reading_time_html = '<div class="post-reading-time-container">';
        $reading_time_html .= prt_calculate_reading_time( get_the_ID() );
        $reading_time_html .= '</div>';
        $content .= $reading_time_html;
    }
    return $content;
}
add_filter( 'the_content', 'prt_display_reading_time_after_content' );

Op deze manier wordt de leestijd automatisch weergegeven aan het eind van ieder artikel, zonder dat je handmatig kort code hoeft in te voegen.

Pluginbeveiliging, optimalisatie en voorbereiding op publicatie

Een geschikte plugin moet niet alleen werken, maar ook veilig, efficiënt zijn en gemakkelijk te gebruiken door anderen.

Datavalidatie, ontsnapping (escaping) en toegangscontrole

Veiligheid is van het hoogste belang. Alle gegevens die van gebruikers of van buitenaf worden ingevoerd, moeten worden gevalideerd en geëscapeseerd.
Validatie: controleer of de gegevens overeenkomen met het verwachte formaat (bijvoorbeeld of het cijfers of e-mailadressen zijn) voordat ze in de database worden opgeslagen. Hiervoor kunt u gebruikmaken van sanitize_text_field()intval() En andere functies.
Escapen: Zorg ervoor dat de gegevens niet als kwaadaardige code worden geïnterpreteerd wanneer ze naar de browser worden verzonden. Hiervoor gebruik je esc_html()esc_attr()esc_url() En andere functies.
Machtigingscontroles: voordat je beheeractiviteiten uitvoert, gebruik je current_user_can() Controleer of de huidige gebruiker over de vereiste rechten beschikt, bijvoorbeeld... current_user_can( 'edit_posts' )

Performance Optimalisatie en Codeorganisatie

Naarmate de functionaliteiten toenemen, moet de code worden gemodulariseerd. Verschilde onderdelen van de code (zoals backend-instellingen, frontend-weergave en API-behandeling) moeten worden opgesplitst in aparte bestanden, die vervolgens worden ingevoerd via een hoofdbestand. require_onceinclude_once Om de bestanden te organiseren…

Voor complexe queries of operaties die vaak worden uitgevoerd, kun je het WordPress-transient-API gebruiken om deze te cacheren. set_transient()get_transient()Dit wordt gedaan om de druk op de database te verlichten.

Internationalisatie en voorbereiding op publicatie

Om ervoor te zorgen dat de plugin door gebruikers wereldwijd gebruikt kan worden, is internationaaliseren (i18n) nodig. Dit betekent dat alle teksten die worden getoond aan de gebruiker met behulp van vertaalfuncties moeten worden omgezet.
1. Gebruik __( '文本', 'text-domain' ) Om vertaalbare teksten te genereren.
2. Definieer dit in de commentaren bovenin het plugin. Text Domain(Zoals ‘post-reading-time’) en zorg ervoor dat dit overeenkomt met de daarna gecreëerde inhoud. .pot De domeinnamen van de bestanden zijn gelijk.
3. Gebruik tools als Poedit of WP-CLI. wp i18n make-pot Deze commando wordt gebruikt om een taaltemplatebestand (.pot) te genereren.

Voor de publicatie moet je ervoor zorgen dat de code voldoet aan de coderingsnormen van WordPress en dat deze duidelijk is geschreven. readme.txt De bestand moet worden opgesteld in het door WordPress geëiste format en moet gedetailleerde informatie bevatten over de functies van het plugin, de installatiestappen, screenshots en de update-log.

Samenvatting

Het ontwikkelen van WordPress-plug-ins is een systeemproces dat begint met het begrijpen van de basisstructuur en het beheersen van de hook-mechanisme, vervolgt met het veilig en efficiënt implementeren van functies, en eindigt met de internationalisering en publicatie van het pluggin. Door te starten met het maken van een simpel functionaliteit-plug-in, kun je steeds meer begrijpen van de werking van WordPress en de ontwikkelingsregels. Het belangrijkste is om de beste praktijken te volgen: gebruik hook-en voor niet-invasieve ontwikkeling, zorg voor strenge beveiliging, en houd altijd rekening met de prestaties en onderhoudbaarheid van het code. Door het voortdurend verkennen van de kerncode en uitstekende open-source-plug-ins, kun je je vaardigheden verder ontwikkelen.

Veelgestelde vragen (FAQ)

Welke voorwaartse kennis is vereist om een WordPress-plugin te ontwikkelen?

Je moet basiskennis hebben van de PHP-programmeringstaal, waaronder variabelen, functies, arrays, conditionele bewerkingen en cycli. Daarnaast moet je een begrip hebben van HTML, CSS en JavaScript, zodat je front-end-weergave en interactie kunt beheren. Het is handig om vertrouwd te zijn met de basisconcepten van WordPress, zoals artikelen, pagina's en categorieën, dit zal je ontwikkelingswerkzaamheden veel gemakkelijker maken.

Hoe debug ik mijn WordPress-plugin?

De meest effectieve manier is om de debug-modus van WordPress in te schakelen. wp-config.php De instellingen zijn gedaan in het bestand. define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );Op deze manier worden alle fouten en waarschuwingen vastgelegd. /wp-content/debug.log In de bestanden moet worden voorkomen dat inhoud rechtstreeks wordt getoond aan de gebruiker. Daarnaast is het handig om de browser-developer-tools te gebruiken om netwerkverzoeken en JavaScript-fouten te bekijken. error_log() Het in code gebruiken van functies om de waarden van variabelen in het logboek op te slaan, is een veelgebruikte methode voor het opsporen van fouten (debugging).

Hoe kan mijn plugin worden gecombineerd met een thema of andere plugins?

Het belangrijkste bij het behouden van compatibiliteit is om de WordPress-standaarden te volgen en hookfuncties voorzichtig te gebruiken. Vermeid het direct wijzigen van de structuur van de kerndatabase of het gebruiken van ongepubliceerde functies (die meestal met een bepaalde prefix worden aangegeven). _ Voeg unieke prefixen toe aan de namen van je functies, klassen en opties (die met een onderstreping beginnen). myplugin_Dit is om naming conflicts te voorkomen. Waar mogelijk worden filter-hooks beschikbaar gesteld, zodat andere ontwikkelaars de werking van je plugin kunnen aanpassen, net zoals jij de WordPress-core hebt aangepast.

Hoe voeg ik een achtergrondinstellingenpagina toe aan mijn plugin?

Je kunt de “Settings API” die WordPress biedt gebruiken om professionele backend-instellingenpagina’s te maken. Dit vereist enkele stappen: add_menu_page()add_submenu_page() Function registration menu page, en vervolgens gebruiken. register_setting()add_settings_section()add_settings_field() Gebruik functies om velden en gebieden in te stellen. Ten slotte maak je een callback-functie om de HTML-formulier van de instellingenpagina uit te geven. Dit is de meest aanbevolen methode, omdat deze automatisch reageert op toegangscontrole, onveilige verificatie en het opslaan van opties.