WordPress plug-in ontwikkeling: van beginners- tot gevorderd niveau, met kerntechnieken en praktische handleidingen.

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

Basics van WordPress-pluginontwikkeling en het opzetten van een ontwikkelingsomgeving

WordPress plugins zijn onafhankelijke codepakketten die de kernfuncties van WordPress uitbreiden. Om met het ontwikkelen van plugins te starten, is het eerst nodig om een professionele lokale ontwikkelomgeving op te zetten. Dit omvat meestal het installeren van lokale serversoftware (zoals XAMPP, MAMP of Local by Flywheel), een code-editor (zoals VS Code of PhpStorm), en een geïnstalleerde versie van WordPress voor het testen. Het gebruik van een lokale omgeving voorkomt de risico's die kunnen optreden wanneer je experimenteel ontwikkelt op een online website.

Nadat alles klaar is, is het heel eenvoudig om de eerste plugin te maken. Je hoeft alleen maar in WordPress…wp-content/pluginsMaak in de map een nieuwe map, bijvoorbeeld...my-first-pluginVervolgens maak je in die map een hoofd-PHP-bestand. De naam van het bestand is meestal dezelfde als de naam van de map. In het begin van dit hoofdbestand moeten de standaard-pluginhead-commentaren staan; dit is belangrijk voor WordPress om het plugin te herkennen.

Noodzakelijke structuur van het hoofdbestand van een plugin

Het hoofdbestand van een plugin vormt de ingangspunt van de plugin, en de commentaarblok bovenin bevat een reeks metagegevens.Plugin NameDit is het enige vereiste veld; het wordt weergegeven in de lijst met plugins in het WordPress-administratiepaneel. Een zeer basistische plugin kan alleen deze header-informatie bevatten, zonder enige daadwerkelijk uitgevoerde code.

Aanbevolen leesmateriaal De volledige gids voor het ontwikkelen van WordPress-plug-ins: van beginner tot expert, met praktische tutorials

Hieronder staat een voorbeeld van de minimaal mogelijke code voor een pluginbestand:

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: 我的第一个插件
 * Description: 这是一个用于学习的简单WordPress插件。
 * Version: 1.0.0
 * Author: 你的名字
 * License: GPL v2 or later
 * Text Domain: my-first-plugin
 */

Na het opslaan van de code, kun je inloggen in het WordPress-administratiepaneel en naar de pagina “Plugins” gaan. Hier vind je de nieuwe plugin en kun je deze activeren. Hoewel de plugin voorlopig nog geen functies uitvoert, betekent dit dat de ontwikkelingsprocedure officieel is gestart.

Core mechanism: Action hooks en filters

De kernfilosofie van WordPress-pluginontwikkeling is “hooks”. Dit concept biedt de mogelijkheid om je eigen code op bepaalde momenten of in relatie tot bepaalde gegevens te “koppelen” aan de kernprocessen van WordPress. Hooks worden voornamelijk in twee categorieën ingedeeld: actions en filters.

Action hooks worden gebruikt om je eigen functies uit te voeren wanneer een bepaald evenement plaatsvindt, bijvoorbeeld wanneer een artikel wordt gepubliceerd of wanneer een script in de hoofdsectie van de pagina wordt geladen. Ze worden gebruikt om bepaalde acties uit te voeren.add_action()Deze functie kan je eigen functie koppelen aan een specifiek action-hook.

Functies toevoegen met action-hooks

Als je bijvoorbeeld een persoonlijke tekst wilt toevoegen aan de voet van een webpagina, kun je dit doen met behulp van...wp_footerDeze actie-hook: In eerste instantie moet je een aangepaste functie schrijven in het hoofdplugin-bestand, en vervolgens...add_action()Bind dit vast aan de haak.

Aanbevolen leesmateriaal WordPress-pluginontwikkeling beheersen: van nul tot één je eerste eigen plugin bouwen

Hieronder staat een voorbeeld van de implementatie:

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Fijn dat je deze website gebruikt!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Als WordPress dit punt bereikt…wp_footerAls de hook wordt gebruikt, wordt deze automatisch opgeroepen.myplugin_add_footer_text()Function: Geef de door jou gedefinieerde tekst als uitvoer terug.

Gegevens bewerken met filter-haken

Filterhooks worden gebruikt om gegevens te bewerken. Ze worden toegepast voordat de gegevens worden gebruikt (bijvoorbeeld worden opgeslagen in een database of weergegeven in een browser). Ze dienen om bepaalde aspecten van de gegevens te veranderen.add_filter()Er bestaan functies om filters te toepassen. Als je bijvoorbeeld alle artikeltitels wilt wijzigen, kun je voor het weergeven van de titels een prefix toevoegen.

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%

De onderstaande code toont hoe je een voorvoegsel “[Recommended]” kunt toevoegen aan de titels van alle artikelen:

function myplugin_modify_title( $title ) {
    if ( is_single() ) {
        $title = '[推荐] ' . $title;
    }
    return $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );

Creëer een beheerpagina voor plugins in de backend.

Veel plugins vereisen dat gebruikers configuratieopties kunnen instellen, waardoor een beheermenu en instellingenpagina in het WordPress-administratiepaneel moeten worden gecreëerd. WordPress biedt een reeks functies om bovenste menu-items of submenu-items toe te voegen.

Beheerdersmenu op bovenste niveau toevoegen

Je kunt gebruikmaken vanadd_menu_page()De functie maakt een apart achtergrondmenu voor je plugin. De functie vereist meerdere parameters, waaronder de paginatitel, de menutitel, de gebruikersrechten, de menualias en een callback-functie voor het genereren van de inhoud van de pagina.

Aanbevolen leesmateriaal Ik leer je stap voor stap hoe je vanaf nul WordPress-plug-ins kunt ontwikkelen.

Hier wordt de callback-functie gebruikt.myplugin_settings_page_htmlVerantwoordelijk voor het genereren van het HTML-content van de instellingenpagina.

De code om een menu te toevoegen moet meestal worden opgehangen (of geplaatst) op de juiste plek in het bestand of de broncode.admin_menuDeze actie wordt gekoppeld aan een hook, zodat deze wordt uitgevoerd wanneer de beheerinterface wordt initialiseerd.

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.

Construct een instellingenpagina en een veiligheidsformulier

In de callback-functie op de instellingenpagina moet je een formulier weergeven en de invoer van het formulier verwerken. WordPress biedt een instellingen-API aan om dit proces te versimpelen; deze API zorgt voor het veilige registreren, opslaan en weergeven van instellingen. Om de basisprincipes te begrijpen, kunnen we eerst een eenvoudig voorbeeld bekijken van het handmatig verwerken van formulierinvoer.

De onderstaande code demonstreert hoe je een eenvoudige instellingenpagina met een invoervak kunt maken en hoe je gegevens veilig kunt opslaan:

function myplugin_settings_page_html() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    // 处理表单提交
    if ( isset( $_POST['myplugin_option'] ) ) {
        // 安全检查:验证随机数
        check_admin_referer( 'myplugin_save_settings' );
        // 清理并保存数据
        $option_value = sanitize_text_field( $_POST['myplugin_option'] );
        update_option( 'myplugin_custom_option', $option_value );
        echo '<div class="notice notice-success"><p>De instellingen zijn gespeeld!</p></div>';
    }
    // 获取已保存的值
    $saved_value = get_option( 'myplugin_custom_option', '默认值' );
    ?&gt;
    <div class="wrap">
        <h1>Mijn plug-ininstellingen</h1>
        <form method="post" action="">
            <?php wp_nonce_field( 'myplugin_save_settings' ); ?>
            <label for="myplugin_option">Optionen:</label>
            <input type="text" id="myplugin_option" name="myplugin_option" value="<?php echo esc_attr( $saved_value ); ?>" />
            <?php submit_button( '保存更改' ); ?>
        <input type="hidden" name="trp-form-language" value="nl"/></form>
    </div>
    &lt;?php
}

Advanced Development en het Publiceren van Plugins

Als de functionaliteit van een plugin complexer wordt, is een goede codeorganisatie van belang. Het wordt aanbevolen om objectgerichte programming (OOP) te gebruiken en de functionaliteit van de plugin te verpakken in klassen. Dit voorkomt dat functienamen met elkaar in conflict komen en maakt de codestructuur duidelijker en eenvoudiger te onderhouden.

De internationaleisering van plugins is cruciaal om de wereld over te gaan.__()_e()Deze functies omvatten al het tekstmateriaal dat gericht is aan de gebruiker en zorgen ervoor dat dit materiaal op de juiste manier wordt weergegeven.load_plugin_textdomain()De functie laadt de vertaalfailen op. Zorg ervoor dat deze worden ingesteld in de juiste commentaren bovenin het plugin.Text DomainDat is ook heel belangrijk.

Forbereidende werkzaamheden voordat een plugin wordt gepubliceerd

Voor het indienen van de plug-in in de officiële catalogus of voor distributie, moet deze grondig worden getest. Dit omvat compatibiliteitstests onder verschillende PHP-versies, WordPress-versies en in combinatie met verschillende thema's en plug-ins. De code moet voldoen aan de coderingsnormen van WordPress en bovendien veiligheid bieden door alle gebruikersinvvoer te valideren, op te ruimen en te ontsnappen.

Voor het schrijven van een duidelijke beschrijving van een plugin:README.txtDe bestanden bevatten informatie over hun functionaliteit, installatieprocedure en veelvoorkomende vragen. Ten slotte wordt de code verpakt in een ZIP-bestand, zodat deze kan worden ingediend in de plugin-directory van WordPress.org of kan worden verspreid op je eigen website.

Samenvatting

Het ontwikkelen van WordPress-plug-ins begint met het begrijpen van de basismechanismen van hooks. Vervolgens ga je verder met het maken van een gebruikersinterface en het organiseren van de codestructuur, tot je uiteindelijk een veilige versie van het plugin kunt publiceren. Het beheersen van de gebruik van action- en filter-hooks is essentieel; deze vormen de brug tussen jouw plugin en WordPress. Of je nu een simpel functie toevoegt of een complexe commerciële plugin bouwt, het volgen van veilige coderingsspecificaties, uitgebreide testing en het accounteren van internationale aspecten zijn belangrijke factoren voor het slagen van het project. Door continu te oefenen, zul je in staat zijn om krachtige, stabiele en populaire WordPress-plug-ins te creeren.

Veelgestelde vragen (FAQ)

Moet je PHP leren voordat je een plugin ontwikkelt?

Ja, een solide kennis van de basisprincipes van PHP is een vereiste voor het ontwikkelen van WordPress-plug-ins. WordPress zelf en de meeste van zijn plug-ins zijn namelijk geschreven in PHP. Je moet de syntaxis, functies, variabelen, arrays en concepten van objectgericht programmeren in PHP begrijpen om effectief plug-in-code te kunnen schrijven en debuggen.

Hoe voorkom ik dat de namen van de functies in mijn plugin niet in conflict komen met de namen van functies in andere plugins?

De beste manier om conflicten met functionnamen te voorkomen, is door objectgericht te programmeren en alle je functies te encaderen in methoden van een klasse. Als je procedurale programmering gebruikt, moet je voor alle functionnamen een unieke prefix toevoegen, die meestal te maken heeft met de naam of afkorting van je plugin.myplugin_mp_Dit kan de kans op namenconflicten aanzienlijk verminderen.

Waarom verdwijnen de instellingen van mijn plugin nadat ze zijn gesaved en de pagina wordt opgeslagen (gefraged)?

Dit gebeurt meestal omdat de verificatie van de willekeurige cijfers die worden ingevoerd bij het indienen van het formulier niet op de juiste manier is verwerkt. Voor het opslaan van de formuliergegevens moet deze verificatie eerst worden uitgevoerd.check_admin_referer()wp_verify_nonce()Er is een functie beschikbaar om willekeurige cijfers te verifiëren, om te controleren of de vraag van een betrouwbare bron komt en om zo aanvallen met cross-site request forgery (CSRF) te voorkomen. Als de verificatie niet slaagt, zal WordPress het opslaan van de gegevens blokkeren.

Hoe kan ik zorgen dat de tekst in mijn plugin naar andere talen wordt vertaald?

Je moet alle gebruikersgerichte tekststrings in het plugin internationaal maken. Hier kun je bijvoorbeeld de `i18n`-functies van je programmeeringsomgeving gebruiken.__()De functie haalt de vertaling van een string op, of gebruikt deze._e()De functie geeft de uitvoer direct af. Je moet dit ook regelen bij het initialiseren van de plugin (bijvoorbeeld wanneer deze wordt gemonteerd).plugins_loadedHook (of: call)load_plugin_textdomain()Er bestaan functies om de corresponderende taalbestanden te laden. Tools als Poedit kunnen je bij het maken hiervan helpen..potTemplatebestanden en.po/.moVertaalde bestand: