Een introductie tot het ontwikkelen van WordPress-plug-ins: bouw je eerste functionele uitbreiding vanaf nul.

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

De kern van de ontwikkeling van WordPress ligt in zijn krachtige pluginarchitectuur: dit maakt het mogelijk voor ontwikkelaars om websitefuncties uit te breiden zonder de kerncode aan te passen. Een plugin kan zo simpel zijn als een regel tekst die in de voetnoot wordt toegevoegd, of zo complex als een volledig e-commerce-systeem. In deze handleiding worden je stap voor stap geleid door het proces van maken van je eerste plugin. Je komt er achter hoe de basisstructuur van een plugin is opgebouwd, welke veiligheidsregels gelden, hoe je met de kern van WordPress interacteert, en hoe je een plugin pakket kunt maken en distribueren. Door te oefenen, ontwikkel je de belangrijkste vaardigheden om bij te dragen aan dit wereldwijd populairste contentmanagement-systeem.

Forbereidende werkzaamheden en ontwikkelingsomgeving

Voor je de eerste regel code schrijft, is het van belang een professionele lokale ontwikkelingsomgeving op te zetten. Dit zorgt ervoor dat je ontwikkelingsproces efficiënt verloopt en dat de online website niet wordt beïnvloed.

Een lokale serveromgeving opzetten

Het wordt aanbevolen om gebruik te maken van geïntegreerde lokale serverpakketten, zoals Local by Flywheel, XAMPP of MAMP. Deze tools installeren Apache/Nginx, PHP en MySQL in één stap en voldoen perfect aan de vereisten voor het draaien van WordPress. Zorg ervoor dat je omgeving PHP 7.4 of een hogere versie gebruikt, evenals MySQL 5.6 of een hogere versie, om te voldoen aan de aanbevolen configuratie voor WordPress in 2026.

Aanbevolen leesmateriaal Een introductie tot het ontwikkelen van WordPress-plug-ins: bouw je eerste functionele uitbreiding vanaf nul.

Maak een basispluginbestand

Elke WordPress-plugin vereist ten minste één hoofd-PHP-bestand. Beginnen we met het hoofd-PHP-bestand van je plugin, dat zich bevindt in het lokale WordPress-installatieverlies.wp-content/pluginsBinnen de map moet een nieuwe map worden gemaakt. De naam van de map moet bestaan uit korte, kleine letters en strepen, bijvoorbeeld:my-first-pluginIn deze map moet je een PHP-bestand maken met dezelfde naam als de map.my-first-plugin.phpDeze bestand zal dienen als ingangspunt voor het plugin.

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.

Maak je eerste pluginstructuur op.

Een goed ontwikkeld plugin moet niet alleen functionaliteit bieden, maar ook meta-informatie bevatten die WordPress kan herkennen en beheren. Dit vormt de basis voor het ontwikkelen van plugins.

Voeg een commentaar toe aan de kop van het plugin.

Bij het begin van het hoofdbestand van je plugin moet je een specifiek PHP-commentaarblock toevoegen, oftewel de “plugin-headertekst”. WordPress gebruikt deze informatie om je plugin te weergeven in de lijst met plugins in het beheerpaneel. Hier is een voorbeeld van een basisheadertekst:

<?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
 */

Plugin NameDit is het enige vereiste onderdeel; de overige onderdelen zijn optioneel, maar ze kunnen de professionaliteit van het plugin verhogen.Text DomainWordt gebruikt voor internationale vertalingen en is meestal gelijk aan de naam van de plugin-map.

Een basisfunctie implementeren

Laten we een klassiek voorbeeld uitvoeren: automatisch toevoegen van een copyright-verklaring aan het eind van elke artikel. Hiervoor moet een PHP-functie worden geschreven en deze moet worden gemonteerd op een filter in WordPress.
Allereerst moeten de functionen die de gewenste functionaliteiten uitvoeren worden gedefinieerd in het hoofdbestand (main file).

Aanbevolen leesmateriaal Handboek voor het beginnen met het ontwikkelen van WordPress-plug-ins

function myfp_add_footer_text( $content ) {
    // 仅在主循环的单篇文章页面添加
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p><em>Dit artikel is voor het eerst gepubliceerd op mijn blog. Als u het wilt herpubliceren, moet u de bron vermelden.</em></p>';
        $content .= $footer_text;
    }
    return $content;
}

De functionaliteit koppelen aan het kernbestand van WordPress

Nadat je een functie hebt gedefinieerd, moet je WordPress vertellen wanneer en waar deze moet worden uitgevoerd. Dit doet je door…add_filterDeze functie is gerealiseerd door de hierboven beschreven code. Naast de definitie van de functie, voeg je de volgende code toe:

add_filter( 'the_content', 'myfp_add_footer_text' );

Deze regel code zal…myfp_add_footer_textDe functie is gemonteerd.the_contentOp deze filter wordt elke keer dat WordPress de inhoud van een artikel gaat weergeven, de inhoud eerst door jouw functie verwerkt. Nu kun je op de “Plugins”-pagina in het lokale WordPress-beheerpaneel “Mijn eerste plugin” activeren en vervolgens op welk artikel dan ook kijken; de aangepaste tekst zou nu op de onderste helft van het scherm moeten zijn te zien.

In dieper gedachten over de beveiliging van plugins en de beste praktijken...

Het implementeren van een functie is maar het eerste stap. Een echte professional weet hoe hij de code veilig, efficiënt en gemakkelijk te onderhouden maakt.

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%

Code opsluiten in klassen

Naarmate er meer functies worden toegevoegd, kan het gemakkelijk tot conflicten komen wanneer alle functies in één globale namensruimte worden opgeslagen. Het is een betere optie om deze functies te verpakken in PHP-klassen. Hier is een voorbeeld van de herstructurering:

class My_First_Plugin {
    public function __construct() {
        // 在构造函数中挂载钩子
        add_action( 'init', array( $this, 'load_textdomain' ) );
        add_filter( 'the_content', array( $this, 'add_footer_text' ) );
    }

public function load_textdomain() {
        load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }

public function add_footer_text( $content ) {
        if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
            $footer_text = '<p><em>' . esc_html__( '本文首发于我的博客,转载请注明出处。', 'my-first-plugin' ) . '</em></p>';
            $content .= $footer_text;
        }
        return $content;
    }
}
// 初始化插件类
new My_First_Plugin();

veilig interacteren met de database

Als je plugin instellingen moet opslaan, moet je gebruikmaken van de mogelijkheden die WordPress biedt.Options APIZorg er absoluut voor dat je SQL-verzoeken niet rechtstreeks uitvoert. Gebruik in plaats daarvan tools of bibliotheken die dit voor je doen.add_optionget_optionupdate_optionEr zijn functies beschikbaar om gegevens veilig te kunnen opslaan en ophalen. Denk hierbij aan functies die het mogelijk maken om tekst in de voetnoot van een pagina te configureren.

// 保存设置
update_option( 'myfp_footer_text', sanitize_text_field( $_POST['footer_text'] ) );
// 获取设置
$saved_text = get_option( 'myfp_footer_text', '默认文本' );

Maak een pagina voor het beheer van instellingen.

Het bieden van een grafische instellingenomgeving voor een plugin kan de gebruikerservaring aanzienlijk verbeteren. Je kunt hiervoor gebruikmaken van de mogelijkheden die WordPress biedt.Settings APIOm een standaardiseerde optiepagina te creeren, zijn enkele belangrijke stappen vereist:add_menu_pageadd_submenu_pageFunction registration page, in useregister_settingRegistratie-instellingen en gebruikadd_settings_sectionadd_settings_fieldWe gaan nu formuliervelden bouwen.Settings APIDe beveiligingsverificatie (Nonce-controle, toestemmingstoetsing) en het opslaan van de gegevens worden automatisch afgehandeld.

Aanbevolen leesmateriaal Een volledige handleiding voor het ontwikkelen van WordPress-plug-ins: van nul tot publicatie in de app store.

Plugin-publicatie en onderhoud

Nadat je het hebt ontwikkeld en het grondig getest hebt, kun je overwegen je werk te delen.

Voer de laatste testen en debuggen uit.

Er worden uitgebreide tests uitgevoerd op de lokale en tijdelijke servers, waaronder tests onder verschillende PHP-versies. De compatibiliteit met populaire thema's en andere plugins wordt gecontroleerd. Er wordt ook gekeken of alle gebruikersinvoer wordt gevalideerd (validated) en gesanitiseerd (sanitized). Hierbij wordt gebruik gemaakt van de mogelijkheden die WordPress biedt.WP_DEBUGKijk of er waarschuwingen of foutmeldingen zijn bij het controleren van het patroon.

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.

De plugins pakken en distribueren

Maak een schoon ZIP-bestand dat alleen de plugin-map en alle vereiste bestanden bevat (het hoofdPHP-bestand, ...)README.txtVertaal bestanden, assetbestanden, etc.). Bevat geen mappen van versiebeheerssystemen (zoals…).gitJe kunt deze ZIP-bestand indienen in het officiële WordPress-plugin-verzeichnis. Hiervoor moet je de strenge reviewrichtlijnen volgen. Je kunt de bestand ook distribueren op je eigen website of op een derde-partijsmarkt.

Plan voor versie-updates en ondersteuning

Naarmate de kern van WordPress wordt bijgewerkt, moet ook je plugin worden onderhouden. Het is belangrijk om een gestructureerde manier van versiebeheer te hanteren (bijvoorbeeld met semantische versienummers), en de veranderingen per versie duidelijk te beschrijven in het begin van de plugin en in het versieoverzicht. Reageer actief op feedback van gebruikers op de support-forums en verbeter continu de code; dit is essentieel voor het langdurige succes van je plugin.

Samenvatting

Het ontwikkelen van WordPress-plug-ins is een praktische proces waarbij ideeën worden omgezet in functionele oplossingen. We beginnen met het opzetten van een omgeving en het creeren van een basisbestandsstructuur, gaan vervolgens verder met het implementeren van kernfuncties, en toepassen we de beste praktijken van object-orienteerde en veilige programmering. Ten slotte bespreken we de stappen voor het publiceren en onderhouden van de plug-ins. Het belangrijkste is om de verschillende mogelijkheden die WordPress biedt te begrijpen en ervaren in de praktijk te brengen.Hook(Hooken, inclusief Action en Filter) enAPI(Als je het hebt over APIs als de Options API en Settings API, zijn dit de veilige bruggen om met de wereld van WordPress te interageren.) Vergeet niet dat een goede plugin niet alleen goed werkt, maar ook veilig, efficiënt is en gemakkelijk te gebruiken door anderen. Nu dat je de basiskennis hebt om je eerste plugin te bouwen, is het tijd om je vaardigheden verder te ontwikkelen door te oefenen en de kerncode te bestuderen.

Veelgestelde vragen (FAQ)

Moet je om plugins te ontwikkelen vloeiend PHP kunnen gebruiken?

Ja, voldoende kennis van PHP is essentieel voor het ontwikkelen van WordPress-plug-ins. Je moet de PHP-synthese, functies, klassen en namenruimten begrijpen, evenals de manier om veilig te interacteren met databases. Het is ook handig om enige kennis van HTML, CSS en basis-JavaScript te hebben.

Waarom verschijnt er een wit scherm op de website nadat mijn plugin is geactiveerd?

“Een ”wit scherm met systeemstilstand’ wordt meestal veroorzaakt door een fatale fout in PHP. Zorg ervoor dat je lokale ontwikkelingsomgeving is ingesteld op deze manier.WP_DEBUGPatronen. Je kunt dit vinden op de website.wp-config.phpVoeg de volgende code toe aan het bestand om de debug-modus te activeren:define( 'WP_DEBUG', true );Deze informatie toont de specifieke foutmeldingen op het scherm, waardoor je het probleem kunt lokaliseren.

Hoe moet je omgaan met mogelijke conflicten tussen plugins?

Conflicten ontstaan meestal door namenconflicten tussen functies of klassen, of door onjuist bepaald prioriteitsbeheer van dezelfde 'hooks'. Het is de beste praktijk om alle functies en klassen een unieke prefix te geven (bijvoorbeeld door gebruik te maken van afkortingen van plugins) om namenconflicten te voorkomen. Voor hooks kun je dit ook doen.add_filteradd_actionDe derde parameter$priorityOm de uitvoeringsvolgorde aan te passen, kan dit indien nodig worden gedaan.remove_actionVerwijder de conflicterende hangmappen voorzichtig.

Hoe voeg ik ondersteuning voor meerdere talen toe aan mijn plugin?

Je moet de internationaleisering (i18n) en lokalisering (l10n)-functionaliteiten van WordPress gebruiken. In je code moet je deze functionaliteiten op de juiste manier implementeren.__()_e()Gebruik een vertaalfunctie om alle tekststrings die moeten worden vertaald te omringen, en geef deze strings de toepasselijke tekstdomen (Text Domains) van je plugin aan. Vervolgens kun je met tools als Poedit de vertalingen bewerken en opslaan..potTemplatebestanden, waarna de vertalers verschillende talen kunnen genereren..mo.poDe bestanden zijn opgeslagen in de plugin./languages/Catalogus.

Kan je commerciële plugins indienen in de officiële WordPress-directory?

Ja, de officiële WordPress-plugincatalogus accepteert commerciële plugins die voldoen aan de filosofie van vrije software (GPL-compatibele licenties). Hieronder wordt verstaan dat de plugin zelf een betaalde versie heeft of dat er betaalde ondersteuning wordt aangeboden. De versie die wordt ingediend in de officiële catalogus moet echter volledig functioneren en gratis beschikbaar zijn. Betaalde extra functies, ondersteuning of upgrades worden meestal aangeboden op de website van de ontwikkelaar. Voor het indienen van een plugin is het heel belangrijk om de officiële guide voor het indienen van plugins en de vereisten met betrekking tot licenties aandachtig te lezen.