De ontwikkeling van WordPress-plug-ins leren: bouw je eerste functionele uitbreiding vanaf nul.

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

Waarom kiezen je voor het ontwikkelen van WordPress plugins?

WordPress is de populairste content management system (CMS) ter wereld geworden, en dit is gedeeltelijk te danken aan zijn krachtige plugin-architectuur. Met plugins kunnen ontwikkelaars bijna alle functies toevoegen aan een website zonder de kerncode te hoeven aanpassen – van eenvoudige contactformulieren tot complexe e-commerce-systemen. Door het leren ontwikkelen van plugins kun je WordPress dieper personaliseren om specifieke bedrijfsbehoeften te vervullen of je eigen creativiteit omzetten in herbruikbare producten.

Het ontwikkelen van je eigen plug-in is beter dan het direct wijzigen van een thema. functions.php Deze bestanden hebben belangrijke voordelen. Plugins zijn functionele modules die onafhankelijk van het thema zijn; wanneer je het thema vervangt, blijven de functies van de plugin behouden. Dit maakt de code eenvoudiger te onderhouden, updaten en te delen tussen verschillende projecten. Het begrijpen van de kernmechanismen van pluginontwikkeling is een essentieel onderdeel van het worden van een ervaren WordPress-developer.

Maak je ontwikkelomgeving klaar.

Voordat je de eerste regel code schrijft, is een stabiele en efficiënte lokale ontwikkelingsomgeving essentieel. Dit zorgt ervoor dat je kunt testen en debuggen zonder dat de online website wordt beïnvloed.

Aanbevolen leesmateriaal Praktische gids voor het ontwikkelen van WordPress plugins: bouw je eerste functionaliteitsplugin van scratch

Configuratie van de lokale serveromgeving

Het wordt aanbevolen om een geïntegreerde lokale serveroplossing te gebruiken, zoals Local by Flywheel, XAMPP of MAMP. Met deze oplossingen kunnen Apache/Nginx, PHP en MySQL in één stap worden geïnstalleerd. Zorg ervoor dat je PHP-versie compatibel is met de versie van WordPress die je gaat gebruiken; het wordt meestal aanbevolen om PHP 7.4 of een hogere versie te gebruiken. Daarnaast moet je een nieuwe versie van WordPress op de lokale server installeren, zodat je hier plugins kunt testen.

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.

Code editors en debugging tools

Kies een krachtige code-editor, zoals Visual Studio Code of PHPStorm. Deze editors bieden ondersteuning voor syntaxis-highlighting, codevoorstellen en integratie met versiebeheer. Voor het aflopen van fouten (debuggen) moet de debugmodus van WordPress worden ingeschakeld. Dit kan alleen worden gedaan in de wortelmap van WordPress. wp-config.php De bestand zal... WP_DEBUG De constante is ingesteld op... true

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // 将错误日志保存到 /wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // 不要在页面上显示错误

Als de debug-modus is ingeschakeld, worden alle PHP-fouten, waarschuwingen en berichtgevingen opgeslagen, waardoor je het probleem snel kunt lokaliseren.

Maak je eerste pluginbestand.

Een WordPress-plugin kan zo simpel zijn dat het maar uit één bestand bestaat, maar het is zeer belangrijk om een goede structuur te hanteren. We beginnen met het meest basale “Hello World”-plugin.

De structuur van het hoofdbestand van een plugin

Allereerst: in WordPress… /wp-content/plugins/ In de map maak je een nieuwe map, bijvoorbeeld... my-first-pluginIn deze map moet je een hoofd-PHP-bestand maken. De naam van het bestand is meestal dezelfde als de naam van de map.my-first-plugin.php

Aanbevolen leesmateriaal Gids voor het maatwerk ontwikkelen van WooCommerce-plug-ins: creëer je eigen online winkel

Elk plugin moet in het begin van het bestand een standaardblok met informatie over het plugin bevatten. WordPress gebruikt deze informatie om het plugin te herkennen en om het te weergeven in de backend-beheerinterface.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://www.yourwebsite.com/my-first-plugin/
 * Description:       这是一个学习 WordPress 插件开发的示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://www.yourwebsite.com/
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Na het opslaan van het bestand, log in je in bij het WordPress-administratiepaneel en ga naar de pagina “Plug-ins”. Hier moet je de nieuwe plugin zien staan in de lijst met beschikbare plugins. Je kunt de plugin nu activeren; hoewel deze nog geen functies heeft.

Voeg de eerste functie toe: beheer van het menu

Volgens dit plan voegen we nu een eenvoudige functie toe aan het plugin: een nieuw menu-item in de sidebar van het WordPress backend-management.

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%

We zullen dit gebruiken. add_action() Een functie om een callback-functie te mounten admin_menu Deze actie zit vast aan de haak.

In het hoofdbestand van de plug-in voeg je na het commentaarblok van de plug-in de volgende code toe:

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Verbied directe toegang
}

// Haak aan bij de actie 'admin_menu'
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * Registreer een aangepaste beheerdersmenu
 */
function mfp_add_admin_menu() {
    add_menu_page(
        'Instellingen van mijn eerste plug-in', // Paginatitel
        'Mijn plug-in',   // Menutitel
        'manage_options',   // Vereiste rechten
        'my-first-plugin',   // Menualias (slug)
        'mfp_display_admin_page', // Terugbelfunctie voor het weergeven van de pagina
        'dashicons-smiley', // Menu-icoon (gebruik Dashicon)
        6   // Positie van het menu
    );
}

/**
 * De inhoud van de beheerderspagina weergeven
 */
function mfp_display_admin_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p>Hallo wereld! Dit is mijn eerste pagina voor het beheer van WordPress-plug-ins.</p>
    </div>
    &lt;?php
}

Sla de bestand op en vernieuw de WordPress-beheerder. In het linkermenu zie je een nieuwe menuoptie genaamd “Mijn plugins”. Als je daarop klikt, kom je op een eenvoudige pagina met een welkomstbericht.

De kern van het verhaal: Hookes en filters

De kernfilosofie van WordPress-pluginontwikkeling is het gebruik van “hooks”. Hooks bieden je de mogelijkheid om je code op specifieke momenten in de kernprocessen van WordPress in te voegen, waardoor je functies kunt veranderen of toevoegen. Er bestaan twee soorten hooks: actions en filters.

Aanbevolen leesmateriaal Gids voor het ontwikkelen en aanpassen van WordPress-themes: van het begin tot het meesteren van het maken van een unieke website

Het begrijpen van action hooks

Action hooks worden in WordPress op bepaalde momenten uitgevoerd, bijvoorbeeld wanneer een artikel wordt gesaved, de header van een pagina wordt geladen of de footer wordt weergegeven. Je plugin kan deze momenten “afluisteren” en zelfdefinieerde functies uitvoeren. Dat hebben we eerder gebruikt. admin_menu Het is gewoon een actie-hook.

Een ander veel voorkomend voorbeeld is dat er automatisch een tekstsegment wordt toegevoegd aan het eind van een artikel.

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.
add_action( 'the_content', 'mfp_append_text_to_content' );

function mfp_append_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $append_text = '<p><em>Deze tekst is gemaakt door mijn eerste plugin.</em></p>';
        $content .= $append_text;
    }
    return $content;
}

Gegevens bewerken met filters

Filterhooks worden gebruikt om gegevens te bewerken voordat deze worden opgeslagen in de database of naar de browser worden gestuurd. Ze ontvangen de gegevens, bewerken deze en moeten de gewijzigde gegevens vervolgens terugsturen. Een typisch voorbeeld is het bewerken van de titel van een artikel.

add_filter( 'the_title', 'mfp_modify_post_title' );

function mfp_modify_post_title( $title ) {
    // 只在非后台的主查询中修改
    if ( ! is_admin() && in_the_loop() ) {
        $title = '[重要] ' . $title;
    }
    return $title;
}

Het begrijpen en behendig gebruiken van hooks is essentieel voor het bouwen van flexibele en krachtige plugins. Het WordPress-core biedt duizenden hooks aan, die zich verspreiden over het hele levenscyclusproces van een plugin.

Sicherheid van plugins en beste praktijken

Door veilige code te schrijven en de beste praktijken te volgen, zorg je ervoor dat je plugin stabiel, efficiënt is en gemakkelijk wordt geaccepteerd door andere ontwikkelaars.

Datavalidatie en escape

Vertrouw nooit op de invoer van gebruikers of op gegevens uit de database. Voordat je gegevens naar de browser stuurt (in HTML, JavaScript of via attributen), moet je deze altijd ontsluiten (of ‘escapen’). WordPress biedt een aantal hulpmiddelen hiervoor aan.

// 输出到 HTML 内容中
echo esc_html( $untrusted_data );
// 输出到 HTML 属性中
echo esc_attr( $untrusted_data );
// 输出到 URL 中
echo esc_url( $untrusted_data );
// 在 JavaScript 变量中输出
$js_data = wp_json_encode( $untrusted_data );

Voordat gegevens worden opgeslagen in een database of worden gebruikt voor logische beoordelingen, is het nodig om deze te verifiëren. Dit gebeurt om te controleren of de gegevens voldoen aan de vereiste formaten (bijvoorbeeld of het een e-mailadres of een cijfer is).

Het gebruik van namenruimten en klassen

Voor complexe plugins is het aan te raden om PHP-namespace'en en objectgerichte programmering (OOP) te gebruiken om de code te organiseren. Dit voorkomt dat functienamen met elkaar in conflict raken en zorgt voor meer modulariteit en leesbaarheid van de code.

<?php
namespace MyFirstPluginAdmin;

class Admin_Menu {
    public function __construct() {
        add_action( 'admin_menu', [ $this, 'add_menu_page' ] );
    }

public function add_menu_page() {
        add_menu_page( ... );
    }
}

// 初始化
new Admin_Menu();

Daarnaast wordt internationaal ondersteuning toegevoegd aan het plugin (met behulp van...) __()_e() Functies, het aanbieden van redelijke opties voor het opruimen bij verwijdering en het naleven van de coderingsnormen van WordPress zijn belangrijke onderdelen van een goede plug-in.

Samenvatting

Het ontwikkelen van WordPress-plug-ins is een proces dat van eenvoudig naar complex kan gaan. Je begint met het maken van een basisbestand dat door WordPress herkend kan worden, en vervolgens gebruik je de krachtige systemen van actions en filter hooks om extra functionaliteiten te toevoegen. Elke stap is gebaseerd op een goed begrip van de architectuur van WordPress. Je lokale ontwikkelingsomgeving is je laboratorium; de debugging-hulpmiddelen zijn je ‘microscoop’, en veiligheid en goede praktijken vormen de basis voor een stabiel en betrouwbare uitvoering van je plug-in.

Door een simpel managementmenu-plugin te bouwen, hebt je de belangrijkste stappen van het ontwikkelen van plugins gevolgd. Daarna kunt je proberen om instellingsopties te integreren, custom database-tables te creeren, functies voor shortcodes te toevoegen of een klein hulpmiddel te ontwikkelen. Door continu te oefenen en te kijken naar de broncode van andere goede plugins, zul je in staat zijn om steeds complexere vereisten te bewerkelen en uiteindelijk professionele WordPress-plugins te creeren.

Veelgestelde vragen (FAQ)

Een WordPress-plugin bestaat minstens uit een paar bestanden. De meest voorkomende bestanden zijn:

Een WordPress-plugin vereist in principe maar één PHP-bestand. Zodra dit bestand de juiste commentaren (header-commentaren) voor het plugin bevat, herkent en activeert WordPress het in de lijst met beschikbare plugins in de achtergrond. Voor plugins met meer functies wordt de code meestal opgesplitst in meerdere bestanden en mappen, om de onderhoudbaarheid te verbeteren.

Hoe voorkom je conflicten in de namen van functies bij het ontwikkelen van plugins?

Er zijn twee belangrijke manieren om conflicten tussen functionnamen te voorkomen. De eerste is om alle je functionen een unieke prefix te geven, bijvoorbeeld door gebruik te maken van afkortingen of symbolen die specifiek zijn voor het plugin. mfp_myplugin_Ten tweede: gebruik je klassen en namenruimtes in PHP om je functies op te sluiten in methoden van deze klassen. Dit is een modernere en aan te raden manier van programmeren, die het probleem met namenconflicten op fundamentele wijze kan oplossen.

Hoe voeg ik een pagina met instellingsopties toe aan mijn plugin?

Het toevoegen van een instellingenpagina voor een plugin houdt meestal in het gebruik van… add_options_page()add_submenu_page() Er is een functie beschikbaar om pagina's te registreren, en vervolgens wordt de WordPress Settings API gebruikt om opties veilig te creeren, te verifiëren en op te slaan. De Settings API bevat alle vereiste mogelijkheden hiervoor. register_setting()add_settings_section()add_settings_field() Functies als deze versimpelen het proces van het maken van gestandaardiseerde instellingenformulieren en zorgen automatisch voor de beveiliging van de gegevens en hun opslag.

Als de ontwikkeling is voltooid, hoe publiceer je de plug-in dan in de officiële catalogus van WordPress?

Om je plugin te publiceren in de officiële WordPress.org-directory, moet je eerst een SVN-repository aanvragen op WordPress.org. Vervolgens moet je ervoor zorgen dat je plugincode voldoet aan de officiële vereisten en richtlijnen: de kwaliteit van de code, de veiligheid, de licentie (die moet GPL-compatibel zijn), en het aanwezig zijn van een standaard readme.txt-bestand. Sluit je code daarna met behulp van SVN-tools op in het opgegeven repository. Het WordPress-team zal de code controleren en, als deze wordt goedgekeurd, zal je plugin beschikbaar zijn voor download en installatie in de officiële directory.