Van nul tot expert: Een volledig handboek en beste praktijken voor het ontwikkelen van WordPress-plug-ins

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

Wat zijn WordPress plugins en wat is hun kernstructuur?

Voordat je begint met het schrijven van code, is het van belang om de essentie van WordPress-plugins te begrijpen. In simpelere termen: een plugin is een verzameling PHP-bestanden die de kernfuncties van WordPress onverstoord kunnen uitbreiden, zonder dat de basiscode van WordPress hoeft te worden gewijzigd. Dit maakt het upgraden en beheren van plugins onafhankelijk en veilig. De basis van elke plugin vormt zijn hoofdbestand, dat meestal een PHP-bestand is met dezelfde naam als de plugin zelf.

De kern van een plugin bestaat uit een specifieke commentaar in het bestandskopie. Deze commentaar vertelt WordPress niet alleen dat het om een plugin gaat, maar bevat ook meta-informatie die wordt weergegeven in het backend-beheerpaneel van WordPress. Het hoofdbestand heet meestal dezelfde naam als de plugin. my-first-plugin.phpIn het begin van deze bestand moet je een PHP-commentaarblock schrijven dat bepaalde informatie bevat.

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

Deze commentaarblock is het “identiteitsbewijs” van het plugin.Plugin NameDit is een verplicht onderdeel; andere gegevens zijn optioneel. Het is echter aan te raden om alle gegevens in te vullen voor een goede gebruikerservaring. Vooral... Text DomainHet wordt gebruikt voor de internationalisering (meertalig ondersteuning) van de plugin en moet overeenkomen met de naam van de plugin-map of de hoofdbestand.

Aanbevolen leesmateriaal WordPress-pluginontwikkeling: een gids van nul tot het bouwen van professionele functionaliteiten

Een eenvoudig plugin kan alleen maar bestaan uit deze bestandsopgave en enkele simpele PHP-code. Bijvoorbeeld kun je onder de commentaren direct een functie toevoegen om de tekst op de voetnoot van de website te wijzigen.

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.

Naast de hoofdfail bevatten plugins meestal ook andere bestanden en mappen, bijvoorbeeld voor het opslaan van JavaScript- en CSS-bestanden. /assets Het menu wordt gebruikt om de gebruikersinterface op te slaan. /admin/public Inhoudslijst, en materiaal voor internationalisering /languages Indeling. Een goed georganiseerd project is de eerste stap naar professionele ontwikkeling.

Maak je eerste functionaliteitsplugin.

Theorie is onlosbaar verbonden met praktijk. Laten we nu een simpel, maar functioneel plugin maken om de ontwikkelingsproces te ervaren. Het doel van dit plugin is om automatisch een op maat gemaakt tekstfragment aan het eind van alle artikelen te toevoegen.

Allereerst: in de map waar je WordPress hebt geïnstalleerd… /wp-content/plugins/ Maak een nieuwe map en noem deze... my-custom-footer-textVervolgens maak je in die map het hoofd-PHP-bestand, met dezelfde naam als de map:my-custom-footer-text.phpKopieer de plugin-headinformatie uit de vorige sectie over en vervang deze door je eigen gegevens.

Vervolgens hebben we een kernfunctie nodig om de inhoud van de artikelen te verwerken. We definiëren een functie... mcf_add_footer_textHet zal de inhoud van het artikel als parameter ontvangen, de door ons opgegeven tekst aan het eind toevoegen en de gecombineerde tekst terugsturen.

Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: van nul tot een eigen plugin bouwen

function mcf_add_footer_text( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p style="color: #888; font-size: 0.9em;">--- Dank je voor het lezen van dit artikel ---</p>';
        $content .= $footer_text;
    }
    return $content;
}

Deze functie bevat een reeks conditionele beoordelingen.is_single() Zorg ervoor dat deze regel alleen op de pagina van een enkele artikel van toepassing is.in_the_loop() Zorg ervoor dat dit in de hoofdloop (main loop) van WordPress wordt uitgevoerd.is_main_query() Zorg ervoor dat het een hoofdverzoek (primary query) is en geen secundair verzoek (secondary query). Deze controles voorkomen dat onze code op onverwachte plaatsen wordt uitgevoerd, bijvoorbeeld in samenvattingen of zijbalken.

Nadat we een functie hebben gedefinieerd, moeten we deze integreren in de uitvoeringsflow van WordPress. Hiervoor gebruiken we een fundamentele mechanisme van WordPress: hooks. We zullen dit gaan doen… the_content Filter-haken worden speciaal gebruikt om de inhoud van artikelen te filteren. Voeg de volgende code onder de commentaren aan het begin van het hoofdbestand toe:

add_filter( 'the_content', 'mcf_add_footer_text' );

De betekenis van deze code is dat je WordPress vertelt dat, wanneer de inhoud van een artikel wordt klaargemaakt voor weergave, de inhoud eerst moet worden overgedragen aan… mcf_add_footer_text De functie verwerkt de invoer, geeft het verwerkte resultaat terug en toont dit. Na het opslaan van het bestand kun je inloggen in het WordPress-administratiepaneel. In het menu “Plug-ins” moet je “Mijn eerste plugin” zien; activeer dit. Nu kun je, wanneer je naar een artikel gaat, een grijs tekstbericht van dankbaarheid zien staan onderaan het artikel.

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 kernontwikkelingsmechanismen beheersen: acties en filter-hooks

Om ervaren te worden in het ontwikkelen van plugins is het essentieel om het systeem van hooks in WordPress goed te begrijpen. Er bestaan twee soorten hooks: Action Hooks en Filter Hooks. Ze vormen de basis voor het plugin-systeem van WordPress en bieden je de mogelijkheid om je eigen code op bepaalde punten in de uitvoering van het kernprogramma in te voegen of gegevens te bewerken.

Action-hooks bieden je de mogelijkheid om bepaalde acties uit te voeren op bepaalde momenten. Wanneer een actie wordt geactiveerd, worden alle functies die zijn gemonteerd op deze actie uitgevoerd. Deze functies worden gebruikt om taken uit te voeren, zoals inhoud weergeven, gegevens in een database op te slaan of e-mails te sturen. Action-functies geven geen waarde terug aan de oproeper. Je kunt acties toevoegen door… add_action() Een typisch voorbeeld van een functie is het toevoegen van meta-taggen aan een bepaald deel van een webpagina.

function myplugin_add_meta_tag() {
    echo '<meta name="my-custom-meta" content="自定义内容" />';
}
add_action( 'wp_head', 'myplugin_add_meta_tag' );

wp_head Het is een actiehaak die wordt opgeroepen in de betreffende sectie van het thema. Onze functie zal op deze plek op elke pagina een stuk HTML-code weergeven.

Aanbevolen leesmateriaal Een succesvol online bedrijf opbouwen: Het ultimatieve handboek voor het bouwen van websites, van nul tot expertniveau

De filter-haken (Filters) worden gebruikt om “gegevens te bewerken”. Wanneer een filter wordt toegepast, worden de gegevens doorgegeven aan alle gemonteerde functies. Elke functie bewerkt de gegevens en returneert de verwerkte waarde. De filter-functies moeten altijd een waarde teruggeven. Om een filter te toevoegen, moet je… add_filter() Functies: In de vorige paragraaf hebben we de inhoud van een artikel gewijzigd, en dit is een typisch voorbeeld van het gebruik van een filter. Een ander veel voorkomend voorbeeld is het wijzigen van de titel van een artikel.

function myplugin_uppercase_title( $title ) {
    return strtoupper( $title );
}
add_filter( 'the_title', 'myplugin_uppercase_title' );

WordPress biedt duizenden hooks aan, van het inloggen van gebruikers tot het opslaan van artikelen, van het genereren van menu’s tot het uitvoeren van queries: bijna elke kernprocedure beschikt over beschikbare hooks. Het begrijpen en vaardig gebruiken van deze hooks is essentieel voor het ontwikkelen van geavanceerde plugins. Je kunt de lijst met hooks vinden in het officiële plugin-handboek of ze rechtstreeks in de kerncode opzoeken. do_action()apply_filters() Kom en ontdek ze.

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.

Advanced practices for developing professional plugins

Als de functionaliteit van een plugin complexer wordt, zijn een goede organisatie, veiligheid en een goede gebruikerservaring van belang. Hier zijn enkele belangrijke, geavanceerde praktijken:

Allereerst gaat het om de veiligheid. Alle gegevens die van de gebruikers worden verzameld (bijvoorbeeld uit formulieren) $_GET$_POST$_COOKIEAlles moet worden gevalideerd, gereinigd en geëscapeseerd voordat het kan worden gebruikt of in de database worden opgeslagen. WordPress biedt een reeks hulpprogramma’s aan, waaronder functies voor het reinigen van gegevens. sanitize_text_field()Dit wordt gebruikt voor het ontsluiten (escapen) van speciale tekens. esc_html()esc_url()wp_kses_post()En voor veilige database-operaties… $wpdb Klassemethoden.

Vervolgens gaat het om objectgerichte programmering en de structuur van het code. Voor complexe plugins is het beter om objectgerichte programmering (OOP) te gebruiken om functionaliteiten te verpakken. Je kunt een hoofdklasse maken en de hooks en functies organiseren in de methoden van deze klasse, waardoor conflicten tussen functienamen worden vermeden en de code overzichtelijk blijft.

class My_Advanced_Plugin {
    public function __construct() {
        add_action( 'init', array( $this, 'register_custom_post_type' ) );
        add_filter( 'the_content', array( $this, 'enhance_content' ) );
    }
    public function register_custom_post_type() {
        // 注册自定义文章类型的代码
    }
    public function enhance_content( $content ) {
        // 处理内容的代码
        return $content;
    }
}
// 初始化插件类
new My_Advanced_Plugin();

Verder nog: het maken van een beheerinterface. Hierbij wordt de WordPress Settings API gebruikt om een stabiele en betrouwbare backend-pagina met instellingen te creëren, in plaats van rechtstreeks formulieren te weergeven. Dit omvat ook het gebruik van… register_setting()add_settings_section()add_settings_field() Functies als deze kunnen automatisch de beveiligingsverificatie (Nonce) en het opslaan van gegevens verwerken.

Ten slotte is er nog de internationaleisering. Om de plugin beschikbaar te maken voor gebruikers overal ter wereld, moeten alle teksten die worden getoond aan de gebruiker worden omhuld met een vertaalfunctie. () Echowijstgeving uitvoeren, gebruik: () Terugsturen met gebruik van... _x() Voer de vertaling uit in het contextuele kader, en vervolgens gebruik deze vertaling in het plugin. load_plugin_textdomain() De functie laadt de taalbestand in.

Samenvatting

Het ontwikkelen van WordPress-plug-ins begint met het begrijpen van de basisstructuur, waarna je steeds verder komt in de kernmechanismen van WordPress totdat je uiteindelijk over geavanceerde technieken beschikt. Van het schrijven van een simpel commentaar in de bestandskop tot het diep integreren van acties (actions) en filters (filters), en van daaruit het bouwen van veilige, gestructureerde en internationale plug-ins – ieder stap biedt je meer mogelijkheden om WordPress aan te passen naar je eigen wensen. Het belangrijkste is om te oefenen: begin met het oplossen van een klein probleem, itereer en optimaliseer je code voortdurend, en houd altijd rekening met de WordPress-编码standaarden en beste beveiligingsopties. Naarmate je meer ervaring opdoet, zul je in staat zijn om krachtige, stabiele en populaire plug-ins te creeren.

Veelgestelde vragen (FAQ)

Welke basiskennis is vereist voor het ontwikkelen van WordPress plugins?

Je moet basiskennis hebben van PHP en HTML/CSS, omdat de plugin voornamelijk in PHP is geschreven en de front-end-omgeving hiermee wordt gecreëerd. Een basiskennis van JavaScript en MySQL is ook handig, vooral wanneer de plugin dynamische interacties of complexe dataverwerking vereist. Het is ook essentieel om vertrouwd te zijn met de basisconcepten van WordPress, zoals artikelen, pagina's, categorieën en gebruikersrollen.

Hoe debug ik de code van mijn WordPress-plugin?

Het eerste stap is om de debug-modus van WordPress te activeren. wp-config.php In het bestand wordt… WP_DEBUG De constante is ingesteld op... trueDit zal PHP-fouten, waarschuwingen en berichtgeving weergeven op de pagina. Tevens wordt… error_log() Function of WP_DEBUG_LOG De fouten moeten worden opgeslagen in een logbestand. De ontwikkelaarsmogelijkheden van de browser (console en netwerktaggen) zijn zeer belangrijk voor het oplossen van problemen met JavaScript en AJAX-verzoeken. Voor complexe logica kunnen professionele debugging-hulpmiddelen zoals Xdebug worden gebruikt.

Hoe kan ik de gegevens veilig updaten in de plugin die ik heb ontwikkeld?

Voor de gegevens van het eigen plugin (zoals instellingen) kunt u de WordPress Options API gebruiken.add_option, update_optionJe kunt veilig toevoegen, bewerken, verwijderen en opzoeken van gegevens. Voor een groot aantal aangepaste gegevens moet je speciale database-tabellen maken. Wanneer een plugin een nieuwe versie uitbrengt en de databasestructuur moet worden bijgewerkt of de gegevens moeten worden gemigreerd, moet dit alleen worden gedaan wanneer de plugin is geactiveerd. Je kunt een versienummer opslaan in een instelling en dit versienummer controleren bij elke activering van de plugin; vervolgens worden de nodige update-functies uitgevoerd.

Hoe maak ik mijn plugin compatibel met verschillende WordPress-themes?

Om de compatibiliteit te maximaliseren, moet je zoveel mogelijk de standaard-API's en hooks die worden geleverd door het WordPress-core gebruiken om content en functies weer te geven. Vermijd het direct bewerken van de template-bestanden van het thema of het gebruiken van ongeopenbare interne functies. Voor de front-end-styling: voeg CSS-klassen met een prefix dat specifiek is voor het gebruikte plugin toe aan je HTML-elementen, en zorg ervoor dat je stijlregels voldoende specifiek zijn, zodat ze niet worden overschreven door de stijlregels van het thema. Gebruik ook conditionele tags (bijvoorbeeld…) is_admin()Er moet een duidelijke scheiding worden gemaakt tussen het laden van backend- en frontend-code.