Van het gemakkelijk kunnen gebruiken tot het worden van een expert: een volledig handboek en praktische training voor het ontwikkelen van WordPress-plug-ins

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

Basics en voorbereidingen voor het ontwikkelen van WordPress plugins

Voordat je begint met het ontwikkelen van een WordPress-plugin, is het van belang een stabiele lokale ontwikkelomgeving op te zetten. Het wordt aanbevolen om tools als XAMPP, Local by Flywheel of Docker te gebruiken om een geïntegreerde omgeving te creëren met Apache/Nginx, MySQL/MariaDB en PHP. Zorg ervoor dat je PHP-versie overeenkomt met de versie die WordPress officieel aanbeidt. Vergeet ook niet een code-editor voor te bereiden, zoals Visual Studio Code of PHPStorm; deze bieden ondersteuning voor syntaxis-highlighting en code提示en, waardoor je ontwikkelingsproces veel efficiënter wordt.

Het is de eerste stap om de basisstructuur van WordPress-plug-ins te begrijpen. Elke plug-in is in feite een set code die zich bevindt in een specifiek bestand binnen het WordPress-systeem./wp-content/plugins/De map in de directory bevat een hoofdPHP-bestand, waarvan de naam meestal overeenkomt met de naam van de plugin-map. Dit hoofdbestand moet bevaten zijn opgegeven commentaren (head comments) die essentieel zijn voor het herkennen van de plugin door WordPress. Een eenvoudige plugin kan hiervoor alleen deze head-commentaren bevatten.

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

De bovenstaande code definieert een basisplugin met de naam “Mijn eerste plugin”. Wanneer je deze file plaatst in.../wp-content/plugins/my-first-plugin/Nadat je de plugin in de map hebt geplaatst, kun je deze zien op de “Plugins”-pagina in het WordPress-administratiepaneel, waar je hem kunt activeren of deactiveren. Deze structuur vormt de basis voor alle complexere plugins.

Aanbevolen leesmateriaal WordPress-pluginontwikkeling vanaf nul: een volledig handboek en praktische handleiding

Voor het ontwikkelen moet je eerst vertrouwd raken met de coderingstandaarden en ontwikkelingsbest practices van WordPress. Hieronder valt bijvoorbeeld het gebruik van prefixen om conflicten tussen functie- en klassennamen te voorkomen. Een diepere kennis van de uitvoeringsflow van WordPress en de kernconcepten, zoals hooks, actions en filters, is essentieel voor het bouwen van krachtige en stabiele plugins.

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.

Core development: Het gebruik van hooks en het maken van plugin-functies

De kern van het ontwikkelen van WordPress-plug-ins ligt in het gebruik van het krachtige hook-systeem. Met hooks kun je op specifieke momenten of tijdens bepaalde dataverwerkingstaken eigen code toevoegen, zonder de kernbestanden te hoeven aanpassen. Er zijn twee belangrijke types hooks: Action Hooks en Filter Hooks.

De ontwikkelaars gebruiken…add_action()Er bestaan functies om een zelfgemaakte functie te koppelen aan een bepaald actiepunt (action hook). Bijvoorbeeld is het een veel voorkomend verzoek om automatisch een copyright-vermelding aan het eind van een artikel toe te voegen.

function myplugin_add_copyright($content) {
    if (is_single()) {
        $copyright = '<p>© ' . date('Y') . ' Alle rechten voorbehouden.</p>';
        $content .= $copyright;
    }
    return $content;
}
add_filter('the_content', 'myplugin_add_copyright');

Hier hebben we gebruik gemaakt van…add_filter()Function. Let op…the_contentDit is een filterhook die het mogelijk maakt om de inhoud van een artikel te bewerken. Onze eigen gedefinieerde functie (custom function) wordt hierbij gebruikt.myplugin_add_copyrightOriginal content wordt ontvangen.$contentAls parameter moet de auteursrechtaanmerking worden toegevoegd, en de gewijzigde inhoud moet daarna worden teruggegeven. De filterhook-functie moet een teruggegeven waarde hebben.

Voor meer complexe functies, zoals het maken van een menu-pagina voor de beheeromgeving, zijn action-hooks nodig.admin_menuEn een reeks WordPress API-functies.

Aanbevolen leesmateriaal WordPress Plugin Development Guide for Beginners: Build Your First Custom Feature Extension from Scratch

function myplugin_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单slug
        'myplugin_settings_page', // 回调函数
        'dashicons-admin-generic', // 图标
        20 // 位置
    );
}
add_action('admin_menu', 'myplugin_admin_menu');

function myplugin_settings_page() {
    echo '<div class="wrap"><h1>Mijn plug-ininstellingen</h1><p>Dit is de pagina waar de inhoud van de instellingen wordt bepaald.</p></div>';
}

Deze code doet dit dooradd_action('admin_menu', 'myplugin_admin_menu')Een menu registreren wanneer het in de achtergrond wordt geladen.myplugin_admin_menuIn de functie wordt dit gebruikt.add_menu_page()Een functie om een bovenste menu-item te toevoegen, en te specificeren wat er gebeurt wanneer de gebruiker op dit menu-item klikt:myplugin_settings_pageEen functie die wordt gebruikt om de inhoud van de pagina te renderen.

Advanced plugin features en veiligheidspraktijken

Naarmate er meer functies worden toegevoegd aan plugins, wordt het steeds belangrijker om de code te organiseren, gegevens te verwerken en de veiligheid te garanderen. Een goede praktijk is om objectgerichte programmering te gebruiken om de functies te verpakken; dit maakt het mogelijk de code beter te beheersen en namenconflicten te voorkomen.

class MyPlugin_Core {
    public function __construct() {
        add_action('init', array($this, 'register_shortcode'));
        add_action('wp_enqueue_scripts', array($this, 'enqueue_assets'));
    }

public function register_shortcode() {
        add_shortcode('myplugin_show', array($this, 'shortcode_handler'));
    }

public function shortcode_handler($atts) {
        return '<div class="myplugin">Hallo van Shortcode!</div>';
    }

public function enqueue_assets() {
        wp_enqueue_style('myplugin-style', plugins_url('css/style.css', __FILE__));
        wp_enqueue_script('myplugin-script', plugins_url('js/script.js', __FILE__), array('jquery'), null, true);
    }
}
new MyPlugin_Core();

Deze klasse registreert kortcodes en front-end-resources tijdens de initialisatie.array($this, 'method_name')Het is de standaardmanier om klassemethoden te gebruiken als callback-functies.

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%

Dataopslag is essentieel voor plugins. Voor eenvoudige configuratieopties moet de WordPress Options API worden gebruikt. Vergeet niet de invoer van gebruikers te verifiëren, te reinigen en te ontsluiten (to escape) om beveiligingslekken te voorkomen.

// 保存设置
function myplugin_save_settings() {
    if (isset($_POST['myplugin_nonce']) && wp_verify_nonce($_POST['myplugin_nonce'], 'myplugin_action')) {
        $safe_value = sanitize_text_field($_POST['my_option']);
        update_option('myplugin_option', $safe_value);
    }
}
add_action('admin_post_myplugin_save', 'myplugin_save_settings');

Deze codefragment toont het proces van veilig verwerken van formulierinvoer:wp_verify_nonce()Verifieer de willekeurige nummer (nonce) en gebruik deze.sanitize_text_field()Verzamel de invoer en gebruik deze uiteindelijk.update_option()Data moet veilig worden opgeslagen. Voor complexere datastructuren kan je erover nadenken om aangepaste database-tabellen te creeren, maar wees hierbij uiterst voorzichtig en houd je aan het WordPress-databasemodel.

Wanneer je CSS en JavaScript introduceert in een plugin, moet je ervoor zorgen dat je deze op de juiste manier gebruikt.wp_enqueue_style()wp_enqueue_script()Definieer de functies en declareer de afhankelijkheden. Dit zorgt ervoor dat de resources in de juiste volgorde worden geladen en dat er geen conflicten ontstaan met andere plugins.

Aanbevolen leesmateriaal Van nul naar honderd: de basisstructuur voor het ontwikkelen van WordPress-plug-ins.

Internationalisatie, implementatie en onderhoud

Om je plugin beschikbaar te maken voor gebruikers wereldwijd, is internationalisatie een essentieel stap. WordPress gebruikt het GNU gettext-framework om meertalig ondersteuning te bieden. Je moet alle teksten die worden getoond aan de gebruiker met behulp van specifieke functies opmaken.

function myplugin_load_textdomain() {
    load_plugin_textdomain('myplugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'myplugin_load_textdomain');

// 在代码中使用翻译函数
echo esc_html__('你好,世界!', 'myplugin');
$title = _x('Post', 'noun', 'myplugin');

Allereerst:plugins_loadedHet tekstveld wordt tijdens de actie geladen. Vervolgens worden, op de plaatsen waar de tekst moet worden vertaald, de vereiste vertalingen gebruikt.__()De functie haalt de vertaalde tekst op, of gebruikt deze._x()Om een contextuele vertaling te realiseren, kun je tools gebruiken zoals Poedit. Met deze tools kun je eenvoudig teksten van de ene in de andere taal vertalen..potTemplatebestanden, bedoeld voor vertalers om mee te werken.po.moVertaalde bestand:

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.

Nadat de ontwikkeling van het plugin is afgerond, moet je een versie maken die klaar is voor publicatie. Maak dit duidelijk door een goede documentatie te verzorgen en alle vereiste onderdelen te controleren.readme.txtDe bestanden moeten voldoen aan de specificaties van WordPress.org; ze worden gebruikt op de pagina met de plugin-indeling. Vergeet ook niet om screenshots en iconen van de plugins voor te bereiden.

Voor de implementatie is het belangrijk om een grondige test uit te voeren, waarbij de kernfuncties worden getest op verschillende PHP-versies, WordPress-versies en in verschillende thema-omgevingen. Overweeg het gebruik van automatiserde testtools.

Nadat het product is gepubliceerd, is het pas nu dat de onderhoudswerkzaamheden echt van start gaan. Je moet proactief reageren op feedback van gebruikers, vragen beantwoorden op het WordPress-supportforum en de plugin regelmatig updaten om securitylekken te verhelpen, nieuwe functies te toevoegen of de compatibiliteit met nieuwe versies van WordPress te garanderen. Het is belangrijk om een betrouwbare versie-updates-log te bijhouden, waarin duidelijk wordt aangegeven wat er met elke update wordt veranderd.

Samenvatting

Het ontwikkelen van WordPress-plug-ins begint met het begrijpen van de basisstructuur van WordPress. Vervolgens gaan ontwikkelaars verder met het gebruik van het hook-systeem om geavanceerde functies te realiseren, terwijl ze strikt de regels voor veiligheid en internationalisatie naleven. Het proces omvat van het maken van een eenvoudige plugin-hoofdfile, het behendig gebruiken van actions en filters, tot het organiseren van objectgericht code en het veilig verwerken van data. Hierdoor kunnen ze krachtige, veilige en gemakkelijk te onderhouden uitbreidingen voor WordPress bouwen. Uiteindelijk, door internationalisatie en het volgen van standaarden bij het distribueren, kunnen hun plug-ins worden gebruikt door gebruikers over de hele wereld. Door dit volledige proces onder de knie te krijgen, stijg je van een beginner naar een ervaren ontwikkelaar.

Veelgestelde vragen (FAQ)

Welke voorwaartse kennis is vereist om een WordPress-plugin te ontwikkelen?

Je moet basiskennis hebben van PHP-programmering, omdat WordPress en zijn plugins voornamelijk in PHP zijn geschreven. Het is ook handig om enkele basiskenningen van HTML, CSS en JavaScript te hebben, om met de front-end-weergave en interactie te kunnen werken. Het belangrijkste is om vertrouwd te zijn met de basisconcepten en architectuur van WordPress, met name met artikelen, pagina's, gebruikersrollen en het zeer belangrijke hook-systeem.

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 praktijk om conflicten te voorkomen, is om unieke prefixen te gebruiken voor het benoemen van alle functies, klassen, variabelen en constanten. Het wordt meestal aanbevolen om een afkorting of de volledige naam van het plugin als prefix te gebruiken. Bijvoorbeeld, als je plugin de naam “Super Gallery” heeft, kun je prefixen als ‘SG_’ of ‘SuperGallery_’ toepassen.sg_super_gallery_SuperGallery_Een dergelijke prefix. Een modernere en te adviseren manier is om PHP-namespaceën te gebruiken (PHP 5.3 of later is vereist) of om volledig objectgericht te programmeren, waardoor de code wordt opgesloten in klassen.

Hoe moet mijn plugin gegevens opslaan en ophalen?

Voor eenvoudige instellingsopties moet de WordPress Options API worden gebruikt.add_option()get_option()update_option()Functies. Deze functies bieden een simpel en veilige manier om sleutel-waarde-paargegevens op te slaan. Voor gegevens die te maken hebben met artikelen, gebruikers of commentaren, kun je gebruikmaken van aangepaste meta-data, zoals post meta of user meta. Je moet pas overwegen om aangepaste database-tabellen te creeren wanneer je met een groot aantal complexe gegevens werkt die op aparte manier worden opgevraagd, en moet de mogelijkheid van veranderingen in het database-model tijdens het installeren en upgraden met voorzichtigheid behandelen.

Hoe voeg ik een instellingenpagina toe aan mijn plugin?

Om een plugin een instellingenpagina te geven, wordt meestal gebruik gemaakt van...add_menu_page()Voeg een topmenu toe, of gebruik het al bestaande.add_submenu_page()Voeg ondermenu-items toe. Daarna moet je een callback-functie schrijven om de HTML-content van de pagina te renderen. Om een georganiseerde instellingenpagina te creeren die formulieren, velden en verificatiebeheer bevat, biedt WordPress de Settings API aan. Deze API helpt je bij het registreren van velden, het uitvoeren van niet-s veilige verificaties en het opslaan van instellingen, en is de aanbevolen manier om instellingenpagina's te bouwen.

Na de ontwikkeling, hoe publiceer je de plug-in in de officiële catalogus van WordPress?

Allereerst moet je op WordPress.org een SVN-repository voor je plugin aanvragen. Zorg ervoor dat je de pluginbestanden voorbereid hebt en dat deze voldoen aan de vereisten.readme.txtEerst moet de code worden opgeslagen in een bestand. Vervolgens wordt de code met het SVN-vergrijppakket naar het repository geüpload./trunk/Inhoud. Tijdens het publiceren van een versie, kopieer je de stabiele code over naar.../tags/In de submappen die zijn genoemd naar de versienummers in de map (bijvoorbeeld…)/tags/1.0.0) en updaten.trunkDe versienummer die zich bevindt in het hoofddeel van het plugin-bestand. WordPress.org leest deze informatie automatisch op en updateert de plugin-indeling hiervoor.