Van nul naar één: In deze handleiding leert u stap voor stap de belangrijkste technieken van WordPress-pluginontwikkeling.

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

Welkom in de fascinerende wereld van WordPress-pluginontwikkeling. Als het meest populaire content management systeem ter wereld, is WordPress bekend om zijn grote uitbreidbaarheid, en plugins vormen de kern van deze uitbreidbaarheid. Of je nu op zoek bent naar een oplossing voor een specifieke functie of van plan bent je creativiteit om te toveren in een product dat anderen kunnen gebruiken, het beheersen van pluginontwikkeling is een zeer waardevolle vaardigheid. In dit artikel worden je stap voor stap geholpen met het opzetten van een basisomgeving tot en met het maken van je eerste, volledig functionerende plugin.

De basisstructuur en werking van een WordPress-plugin

Voordat je begint met schrijven van code, is het van belang om te begrijpen hoe een plugin is opgebouwd en hoe het werkt in WordPress. Een plugin bestaat in feite uit één of meerdere PHP-bestanden die communiceren met het kernsysteem van WordPress via de API (Application Programming Interface) die WordPress biedt.

Het kernbestand van het plugin

Elk plugin moet een hoofdbestand hebben. Dit hoofdbestand heet meestal dezelfde naam als het plugin, bijvoorbeeld: my-first-plugin.phpDe opening van deze bestand moet een specifiek commentaar met informatie over het plugin bevatten. WordPress gebruikt deze informatie om het plugin te herkennen en te weergeven.

Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: van nul tot expertniveau in de praktijk

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

Deze commentaar bevat metadata voor het plugin, zoals de naam, beschrijving en versie van het plugin in het backend-beheerpaneel. Zonder deze metadata kan WordPress het plugin niet herkennen.

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.

Hook-mechanism: de brug tussen plugins en het core-systeem

De kerndriving kracht van WordPress is het “hooks”-systeem, waarmee plugins op specifieke momenten hun eigen code kunnen toevoegen om het standaardgedrag te veranderen of uit te breiden. Er zijn twee soorten hooks: Actions en Filters.

Action hooks bieden je de mogelijkheid om zelfgemaakte code uit te voeren wanneer bepaalde gebeurtenissen plaatsvinden, bijvoorbeeld wanneer een artikel wordt gepubliceerd, wanneer een gebruiker inlogt of voordat een pagina wordt geladen. Je kunt ze dus gebruiken om bijvoorbeeld automatische acties uit te voeren of gegevens te verwerken op deze momenten. add_action() Een functie die je eigen functie monteert (of toevoegt aan een systeem).

De filter-haken bieden je de mogelijkheid om gegevens te bewerken. Voor het verzenden van de gegevens naar de database of de browser, kun je deze gegevens opvangen en aanpassen. Dit wordt gerealiseerd door… add_filter() Deze functionaliteit is gerealiseerd door functies. Het begrijpen en vloeiend gebruiken van deze twee soorten ‘hooks’ (verbindingspunten) is de basis voor het ontwikkelen van geavanceerde plugins.

Opzetten van de ontwikkelingsomgeving en het eerste plugin

Voordat je met het coderen begint, is een betrouwbare lokale ontwikkelomgeving essentieel. Dit zorgt ervoor dat je vrij kunt testen en debuggen zonder dat de online website hierdoor wordt beïnvloed.

Aanbevolen leesmateriaal Technische handleiding voor het hele proces van websiteontwikkeling: van nul tot livegoed – praktische tips en optimalisatiestrategieën

Configureren van de lokale ontwikkelingsomgeving

Het wordt aanbevolen om een geïntegreerde lokale serveroplossing te gebruiken, zoals Local by Flywheel, XAMPP of MAMP. Met deze tools kun je in één stap de vereiste PHP-, MySQL- en webserveromgeving voor WordPress instellen. Na de installatie kun je een nieuwe WordPress-website maken voor het ontwikkelen van plugins.

Een simpel plugin maken en activeren:

Op je lokale WordPress-site… 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.phpEn schrijf dit ook in de commentaren bovenin de plugin, zoals eerder genoemd.

Na het opslaan van het bestand, log in je in bij het WordPress-administratiepaneel en ga naar het menu “Plug-ins”. Je moet “Mijn eerste plugin” zien staan in de lijst met plug-ins. Klik op “Activeren”, en je eerste plugin is nu actief! Hoewel het nog geen functies heeft, heb je met succes de basis van een plugin gecreëerd.

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%

Realisatie van kernfuncties en veiligheidsmaatregelen

De betekenis van een plugin ligt in zijn functionaliteit. Laten we dan een simpel, maar praktisch functie toevoegen aan de plugin: automatisch een aangepast tekstfragment toevoegen aan het eind van de artikelinhoud.

Het inhoud van een artikel bewerken met filters

We zullen dit gebruiken. the_content Deze filterhook: voeg de volgende code toe in het hoofdbestand van je plugin.

function myplugin_add_text_to_content( $content ) {
    // 检查是否为单篇文章页面
    if ( is_single() ) {
        $custom_text = '<p><em>Fijn dat je het hebt gelezen! Dit artikel is gemaakt door mijn eerste plugin.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_add_text_to_content' );

Deze code definieert een functie. myplugin_add_text_to_contentHet ontvangt de inhoud van de artikelen. $content Als parameter. In de functie wordt deze parameter gebruikt. is_single() Gebruik conditionele tags om te zorgen dat de tekst alleen wordt toegevoegd op de pagina van een enkele artikel. add_filter() Mount deze functie op… the_content De tekst is nu op de filter geplaatst. sla de bestand op en vernieuw de pagina van het blogartikel, dan zie je de toegevoegde tekst.

Aanbevolen leesmateriaal In deze handleiding leert u stap voor stap hoe u van scratch een professionele, onafhankelijke website voor WooCommerce bouwt.

Fundamentale overwegingen voor de veiligheid van plugins

Veiligheid is van het grootste belang bij het ontwikkelen van plugins. Vertrouw nooit blind op invoer van gebruikers of gegevens van een website.
1. Escape output: Wanneer gegevens naar de browser worden gestuurd, moet deze worden geëscapeseerd om XSS-aanvallen (Cross-Site Scripting) te voorkomen. WordPress biedt hierbij verschillende mogelijkheden voor. esc_html(), esc_attr(), esc_url() En andere hulpprogramma's.
2. Verificatie en schoonmaken van invoer: Voor de gegevens die vanuit gebruikersvormulieren of URL-parameeters worden ontvangen, is het vereist om deze voor gebruik te verifiëren (om te controleren of de formatie correct is) en te schoonmaken (om ongeautoriseerde karakters te verwijderen). Hier kunnen functies worden gebruikt als… sanitize_text_field()
3. Nonce-beveiliging: Als je plugin gegevens verandert (bijvoorbeeld instellingen opslaat), moet je de Nonce-mechanisme van WordPress gebruiken om de intentie van de verzoeken te verifiëren, om zo aanvallen met cross-site request forgery (CSRF) te voorkomen.

Een managementinterface toevoegen aan de plugin

De meeste plugins hebben een instellingenpagina waar de gebruiker zelf instellingen kan maken. We gaan een eenvoudige optiespagina maken, waarmee de gebruiker de tekst die aan het eind van een artikel wordt toegevoegd kan aanpassen.

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.

Een beheermenu en -pagina maken

We kunnen dit gebruiken. add_menu_page()add_options_page() Een functie om een menu-item toe te voegen aan de WordPress-backend. De volgende code voegt een optiepagina toe onder het submenu “Instellingen”:

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',              // 菜单标题
        'manage_options',        // 所需权限
        'myplugin-settings',     // 菜单Slug
        'myplugin_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Vervolgens moeten we de callback-functie definiëren. myplugin_render_settings_page Hieronder vindt u het HTML-content voor de instellingenpagina, evenals de logica voor het opslaan van formulieren. Op de pagina moet de WordPress Settings API worden gebruikt om de instellingen veilig te verwerken. Als introductieexemplaar wordt echter een versie zonder alle details gegeven:

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Mijn plug-ininstellingen</h2>
        <form action="/nl/options.php/" method="post" data-trp-original-action="options.php">
            <?php settings_fields( 'myplugin_settings_group' ); ?>
            <label for="custom_text">Maak je eigen tekst:</label><br/>
            <textarea id="custom_text" name="myplugin_custom_text" rows="4" cols="50"><?php echo esc_textarea( get_option( 'myplugin_custom_text' ) ); ?></textarea>
            <p class="submit">
                <input type="submit" name="submit" class="button-primary" value="Wijzigingen opslaan" />
            </p>
        <input type="hidden" name="trp-form-language" value="nl"/></form>
    </div>
    &lt;?php
}

Registreer je instellingen en verwerk de gegevens.

We moeten een instellingsoptie registreren en ervoor zorgen dat deze veilig wordt opgeslagen. Dit gebeurt meestal wanneer de plugin wordt geïnstalleerd (of initialiseerd).

function myplugin_register_settings() {
    register_setting(
        'myplugin_settings_group', // 设置分组
        'myplugin_custom_text',    // 选项名称
        'sanitize_textarea_field'  // 清理回调函数
    );
}
add_action( 'admin_init', 'myplugin_register_settings' );

Ten slotte moet de functie die eerder werd gebruikt om artikelen te toevoegen worden gewijzigd, op basis van de gegevens uit de database. myplugin_custom_text De opgeslagen tekst van de gebruiker wordt gelezen uit de bestand, in plaats van de hardgecodeerde tekst te gebruiken.

Samenvatting

In dit artikel worden je stappen voor stappen door de wereld van WordPress-pluginontwikkeling heen geleid, van het begin tot het eind. We begonnen met het begrijpen van de basisstructuur van plugins en het hook-systeem van WordPress, bouwden vervolgens een lokale ontwikkelomgeving op, en creëerden en aktiveerden ons eerste plugin. Daarna leerden we hoe we filters kunnen gebruiken door een voorbeeld te kijken hoe tekst wordt toegevoegd aan artikelen, en we legden nadruk op veiligheidsmaatregelen. Ten slotte voegden we een configurerbare beheerpagina toe aan het plugin.

Nu je deze kerntechnieken onder de knie hebt, beschik je over de basis om verder te ontwikkelen met het maken van plugins voor WordPress. Je kunt vervolgens onderzoeken hoe je aangepaste artikeltypes, meta-data (Meta Box), shortcodes, REST API- endpoints en Ajax-oproepen kunt gebruiken. Hiermee kun je plugins bouwen die nog uitgebreider en krachtiger zijn.

Veelgestelde vragen (FAQ)

Welke voorwaartse kennis is vereist om plugins te ontwikkelen?

Je moet basiskennis hebben van de PHP-programmeringstaal, omdat het core van WordPress en zijn plugins allemaal in PHP zijn geschreven. Het is ook handig om kennis te hebben van HTML, CSS en basis-JavaScript, vooral wanneer je gebruikersinterfaces gaat maken. Het is een plus als je vertrouwd bent met de basisconcepten van de MySQL-databank.

Hoe debug ik mijn plugin-code?

De meest gebruikelijke methoden voor het opsporen van fouten (debuggen) bij het ontwikkelen met WordPress zijn: WP_DEBUGJe kunt dit op de website doen. wp-config.php In het bestand wordt… define(‘WP_DEBUG’, true); Verander de waarde in deze regel in... trueDit zorgt ervoor dat alle PHP-fouten, waarschuwingen en berichtgeving op het scherm worden weergegeven en in een logbestand worden opgeslagen. Daarnaast wordt… error_log() De functie stuurt de variabelinformatie naar het foutenlog van de server; dit is ook een zeer praktische techniek voor het opsporen van problemen (debuggen).

Hoe moet mijn plugin omgaan met meertalig ondersteuning?

Om je plugin internationaal te maken, moet je de vertaalfuncties van WordPress gebruiken (zoals…) __()_e()Om alle tekststrings die worden gebruikt voor de gebruiker te omringen, moet eerst een bepaald format worden gebruikt. Vervolgens kan met een tool als Poedit de gewenste vertaling worden gemaakt. .pot Templatebestanden: vertalers kunnen er mee verschillende talenversies van een tekst van maken. .po.mo Ten slotte moet je dit gebruiken in het hoofdbestand van het plugin. load_plugin_textdomain() Een functie om vertaalfailen te laden.

Nadat de ontwikkeling is afgerond, hoe stuur je de plugin dan naar het officiële repository?

Allereerst moet je ervoor zorgen dat je plugin volledig voldoet aan de officiële coderingsteksten van WordPress en de GPL-licentie. Daarna moet je op WordPress.org een SVN-repo (repository) aanvragen voor je plugin. Je moet de code van je plugin gebruiken om deze code te uploaden naar het geselecteerde SVN-repo. /trunk Inhoudslijst. Tegelijkertijd moet er een hoogwaardige versie worden voorbereid. readme.txt Bestanden, screenshots van plugins en iconen. Na het indienen zal het officiële review-team je plugin controleren. Als het wordt goedgekeurd, kan je plugin worden gepubliceerd in de officiële catalogus.