WordPress-pluginontwikkeling: van het begin tot meesterschap: een volledig handboek voor het bouwen van aangepaste functies

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

Opzetten van een ontwikkelingsomgeving voor WordPress-plug-ins

Voordat je met het schrijven van code begint, is een stabiele en efficiënte ontwikkelomgeving van belang. Dit bevordert niet alleen de ontwikkelingsefficiëntie, maar zorgt ook voor de compatibiliteit van plugins in verschillende omgevingen. Allereerst moet je een WordPress-omgeving op je lokale computer opzetten. Het wordt aanbevolen om gebruik te maken van geïntegreerde lokale serverpakketten, zoals XAMPP, MAMP of Local by Flywheel, die Apache, MySQL en PHP in één stap kunnen installeren.

Vervolgens heb je een code-editor nodig. Visual Studio Code, PhpStorm of Sublime Text zijn allemaal uitstekende keuzen; ze bieden ondersteuning voor syntaxhighlighting, codevoorstellen en mogelijkheden voor het oplossen van fouten (debugging). Zorg ervoor dat je PHP-versie overeenkomt met de omgeving waarin je WordPress gaat gebruiken. Meestal raden de ontwikkelaars van WordPress een stabiele PHP-versie aan.

De belangrijkste voorbereidende stap in het ontwikkelen is het creeren van de basisstructuur van het plugin. Dit doet u in het mapverhaal (directory structure) van uw WordPress-installatie.wp-content/pluginsBinnen de map maak je een nieuwe, speciale map voor je plugin.my-first-pluginIn deze map moet je een hoofdplugin-bestand maken, dat meestal de naam van het plugin draagt.my-first-plugin.phpDeze bestand is het entrypunt voor je plugin, en de commentaren die zich aan het begin van de bestand bevinden zijn van cruciaal belang. WordPress gebruikt deze informatie om je plugin te herkennen en te weergeven.

Aanbevolen leesmateriaal Volledige gids voor het ontwikkelen van WordPress plugins: bouw je eerste plugin van scratch

<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://example.com/my-first-plugin
 * Description: 这是一个用于演示的WordPress插件。
 * Version:     1.0.0
 * Author:      你的名字
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 */

Deze commentaar bepaalt de weergaveinformatie van het plugin in het administratiepaneel van WordPress. Nadat je deze stappen hebt uitgevoerd, kun je je plugin zien en activeren op de “Plugins”-pagina in het WordPress-administratiepaneel, al heeft het plugin voorlopig nog geen enkele functionaliteit.

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.

De kernmechanismen van WordPress-plug-ins begrijpen

De kracht van WordPress zit in zijn zeer uitbreidbare architectuur, die voornamelijk wordt gerealiseerd door het “hook”-mechanisme. Het begrijpen van hooks is essentieel om ervaren te worden in het ontwikkelen van plugins. Er zijn twee belangrijke types hooks: Action Hooks en Filter Hooks.

Action hooks bieden je de mogelijkheid om op specifieke momenten je eigen code in te voegen en uit te voeren. Bijvoorbeeld wanneer een artikel wordt gepubliceerd of wanneer een gebruiker de bovenste helft van de website bezoekt, wordt door WordPress een corresponderende action hook geactiveerd. Je kunt deze action hooks dus gebruiken om bepaalde taken automatisch uit te voeren.add_action()De functie “monteert” je eigen gedefinieerde functie op deze ‘haakpunten’ (hooks).

function my_custom_function() {
    // 你的代码逻辑
}
add_action( 'wp_head', 'my_custom_function' );

De bovenstaande code zal worden gebruikt op de website.<head>Deel van de uitvoering is voltooid.my_custom_functionFunctie.

De filter-haken worden gebruikt om gegevens te bewerken. Ze bieden je de mogelijkheid om gegevens te veranderen voordat deze worden gebruikt, bijvoorbeeld voordat ze worden opgeslagen in een database of worden weergegeven op een pagina.add_filter()Er is een functie beschikbaar om filters te toepassen. De filterfunctie moet een invoerwaarde accepteren en de gewijzigde waarde teruggeven.

Aanbevolen leesmateriaal Praktische introductie voor beginners: stap voor stap leer je hoe je WordPress-plug-ins ontwikkelt.

function modify_content( $content ) {
    $new_content = $content . “<p>Deze tekst is toegevoegd door mijn plugin.</p>”;
    return $new_content;
}
add_filter( 'the_content', 'modify_content' );

Deze code voegt aan het eind van elke artikelstekst een segment met aangepaste tekst toe.

Een andere belangrijke mechanisme zijn shortcodes. Shortcodes bieden gebruikers de mogelijkheid om eenvoudige tags in te gebruiken om bepaalde functies of inhoud te activeren.[my_shortcode]In artikelen of pagina's dynamische inhoud invoegen is mogelijk. Hier kun je verschillende methoden gebruiken, zoals:add_shortcode()Een functie om een shortcode-behandelingsfunctie te registreren.

Een volledig functionerend voorbeeld van een plugin bouwen

Nu gaan we alle bovenstaande kennis samen gebruiken om een simpel plugin te bouwen voor het schatten van de lees tijd van een artikel. De plugin berekent automatisch de lees tijd van het artikel en toont deze voor het begin van het inhoud.

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%

Allereerst creëren we in het hoofdbestand van het plugin een functie om de lees tijd te berekenen. We gaan er van uit dat de gemiddelde lees snelheid 200 woorden per minuut is.

function calculate_reading_time( $content ) {
    // 去除HTML标签,只计算纯文字
    $text = strip_tags( $content );
    // 计算单词数
    $word_count = str_word_count( $text );
    // 计算阅读分钟数(向上取整)
    $reading_time = ceil( $word_count / 200 );

// 创建显示信息
    $reading_time_html = ‘<div class="“reading-time”">Verwachte lees tijd: ’.$reading_time.‘ minuten</div>’;

// 将阅读时间信息附加到文章内容之前
    return $reading_time_html . $content;
}
// 使用过滤器将函数应用到文章内容
add_filter( ‘the_content’, ‘calculate_reading_time’ );

Er zijn echter situaties waarin we de lees tijd niet op alle plaatsen (zoals in samenvattingen of RSS-feeds) willen weergeven. Dit kunnen we optimaliseren door condities toe te voegen in onze code.

function calculate_reading_time( $content ) {
    // 仅在主循环的单篇文章页面显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $text = strip_tags( $content );
        $word_count = str_word_count( $text );
        $reading_time = ceil( $word_count / 200 );

$reading_time_html = ‘<div class="“reading-time”"><strong>📖 Leesduur:</strong>Ongeveer $reading_time… minuten.</div>’;
        return $reading_time_html . $content;
    }
    // 如果不是单篇文章,返回原内容
    return $content;
}
add_filter( ‘the_content’, ‘calculate_reading_time’ );

Om de stijl nog mooier te maken, kunnen we ook wat CSS toevoegen. We kunnen hierbij gebruikmaken van…wp_enqueue_style()Een functie om stijlbestanden veilig te laden. Eerst moet je in de map met plugins een nieuw bestand maken.style.cssDe bestand wordt vervolgens door middel van een action-hook toegevoegd aan de queue.

Aanbevolen leesmateriaal Handboek voor beginners in het ontwikkelen van WordPress-plug-ins: bouw je eerste functionele plugin van scratch

function my_plugin_styles() {
    wp_enqueue_style(
        ‘my-plugin-style’,
        plugin_dir_url( __FILE__ ) . ‘style.css’,
        array(),
        ‘1.0.0’
    );
}
add_action( ‘wp_enqueue_scripts’, ‘my_plugin_styles’ );

Beste praktijken voor de internationalisering en beveiliging van plugins

Een professioneel plugin voor wereldwijd gebruik moet ondersteuning bieden voor internationalisering (i18n). Dit zorgt ervoor dat je plugin kan worden vertaald in andere talen. Om internationalisering te realiseren, moet je de vertaalfuncties van WordPress gebruiken. Eerst moet je deze functies op de juiste manier instellen in de commentaren bovenin het plugin.Text DomainNet zoals we eerder hebben ingesteld…my-first-plugin

In de code moet voor alle strings die moeten worden vertaald gebruik worden gemaakt van een speciale methode of framework.()_e()esc_html()Deze functies worden verpakt (wrapped).

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.
$reading_time_html = ‘<div class="“reading-time”"><strong>’
    . esc_html__( ‘📖 Reading Time:’, ‘my-first-plugin’ )
    . ‘</strong>’
    . sprintf(
        esc_html__( ‘about %d minutes’, ‘my-first-plugin’ ),
        $reading_time
    )
    . ‘</div>’;

Vervolgens moet je een tool gebruiken (bijvoorbeeld Poedit) om dit te genereren..potTemplatebestanden: de vertaler kan erop baseren om nieuwe content te creëren..po.moDeze bestanden moeten worden opgeslagen in de map van het plugin.languagesIn de map.

Security is the lifeline of plugin development. The following core security practices must be followed:
1. Datavalidatie: Alle invoergegevens van gebruikers of externe bronnen worden streng gecontroleerd. Hierbij worden functies gebruikt als…sanitize_text_field()absint()Kom om de data te schoonmaken.
2. Data-escaping: Voordat gegevens worden weergegeven in HTML, JavaScript of een URL, moet deze worden geëscapéerd.esc_html()esc_attr()esc_url()wp_kses_post()En andere functies.
3. Non-CE-verificatie: Voor acties die betrekken bij het wijzigen van gegevens (zoals het indienen van een formulier of AJAX-verzoeken), moet de non-CE-verificatie worden gebruikt.wp_nonce(Een nummerisch token wordt gebruikt om de legitiemheid en intentie van een verzoek te verifiëren, waardoor CSRF-aanvallen worden voorkomen.)
4. Capaciteitsbeoordeling: Voordat u beheeracties uitvoert, moet u…current_user_can()De functie controleert of de huidige gebruiker voldoende rechten heeft (bijvoorbeeld...)‘manage_options’)。

Samenvatting

Het ontwikkelen van WordPress-plug-ins is een proces waarbij creativiteit wordt omgezet in functionele mogelijkheden. De kern hiervan ligt in een diepe begrijping en flexibele toepassing van het hook-systeem. Je begint met het opzetten van een omgeving en het maken van basisbestanden, en vervolgens interacteer je diep met het kernprogramma van WordPress via actions en filters om bruikbare functionaliteiten te bouwen. Een volwassen plugin moet niet alleen alle vereiste functies hebben, maar ook voldoen aan internationale en veiligheidsstandaarden, zodat het stabiel, veilig is en door gebruikers overal ter wereld kan worden gebruikt. Door continu te oefenen en te leren, kun je van het ontwikkelen van simpele plug-ins steeds verder gaan naar het bouwen van complexe, commerciële uitbreidingen voor WordPress.

Veelgestelde vragen (FAQ)

Is het vereist om vloeiend PHP te beheersen om een WordPress-plugin te ontwikkelen?

Ja, een goede kennis van PHP is essentieel voor het ontwikkelen van WordPress-plug-ins. Het core van WordPress is zelf in PHP geschreven, en de logische verwerking van alle plug-ins en thema's is afhankelijk van PHP. Je moet vertrouwd zijn met de PHP-synthese, functies, objectgerichte programmering en hoe je met de MySQL-database kunt werken. Daarnaast is een goede kennis van HTML, CSS en JavaScript belangrijk voor het ontwikkelen van front-end-interactiefuncties.

Hoe debug ik een WordPress-plugin dat ik zelf heb ontwikkeld?

WordPress biedt verschillende hulpmiddelen voor het opsporen en oplossen van problemen (debugging tools). Allereerst kun je…wp-config.phpDe debug-modus is in het bestand geactiveerd.WP_DEBUGDe constante is ingesteld op...trueDit zal PHP-fouten, waarschuwingen en berichtgeving op de pagina weergeven. Voor meer complexe debugging-mogelijkheden kan…error_log()De functie registreert informatie in het foutenlog van de server, of gebruikt professionele debugging-tools zoals Query Monitor om details over database-opvragen, het uitvoeren van hooks en het laden van scripts te bekijken.

Hoe kan ik de plugin die ik heb ontwikkeld publiceren in de officiële WordPress-plugincatalogus?

Om je plugin te publiceren in de officiële catalogus van WordPress.org, moet je eerst een account op WordPress.org aanmaken en je plugin indienen. Je plugin moet voldoen aan de officiële codestandaarden en -regels, waaronder het gebruik van een licentie die compatibel is met GPLv2 of een hogere versie, het naleven van veiligheidsbest practices, en het bevatten van volledige documentatie met commentaren. Na het indienen wordt je plugin door een team van reviewers bekeken. Als het wordt goedgekeurd, kan je plugin worden gepubliceerd. Op deze manier kunnen gebruikers je plugin rechtstreeks vanuit hun WordPress-beheerpaneel vinden, installeren en updaten.

Hoe maak ik een beheeringspagina voor mijn plugin?

Je kunt de “Settings API” van WordPress gebruiken om gestructureerde en veilige beheerpagina’s te creeren. De belangrijkste stappen zijn:add_menu_page()add_submenu_page()De functie registreert een nieuwe menu-pagina en gebruikt deze vervolgens.add_settings_section()add_settings_field()Om de instellingenregio en de velden te definiëren… Ten slotte, gebruik…register_setting()Registreer je, stel de instellingen in en schakel automatische opslag en verificatie in. Dit proces zorgt voor de veiligheid van de instellingenpagina en voor een consistente werking met het WordPress-beheerinterface.