WordPress is het populairste content management systeem ter wereld, en de grote schaalbaarheid van het systeem is gedeeltelijk te danken aan zijn plugin-architectuur. Als je merkt dat de beschikbare functies niet voldoen aan je behoeften, is het ontwikkelen van je eigen plugin de beste optie. Dit helpt niet alleen om specifieke problemen op te lossen, maar is ook een uitstekende manier om dieper in de werking van WordPress te komen. In deze handleiding wordt je stap voor stap geleid door het proces van het ontwikkelen van je eerste WordPress-plugin: van het opzetten van een omgeving tot het schrijven van code, en uiteindelijk het publiceren van het plugin.
Forbereiding van de ontwikkelingsomgeving en -tools
Voordat je begint met schrijven van code, heb je een geschikte ontwikkelomgeving nodig. Dit zorgt ervoor dat je ontwikkelproces efficiënt verloopt en dat je de beste praktijken van WordPress volgt.
Opzetten van een lokale ontwikkelingsomgeving
De voorkeurlijke optie is om op je eigen computer een lokale serveromgeving op te zetten. Je kunt hierbij gebruikmaken van XAMPP, MAMP (Mac), WAMP (Windows) of de flexibele oplossing Docker. Deze pakketten bevatten een Apache-server, een MySQL-database en PHP, waardoor de omstandigheden voor het draaien van WordPress op het internet worden nagemaakt. Nadat je de lokale server hebt geïnstalleerd, kun je de meest recente versie van WordPress downloaden van de officiële WordPress-website en deze volgens het standaardproces van “5-minuten-installatie” op je lokale computer configureren.
Aanbevolen leesmateriaal Een beginnershandleiding voor het ontwikkelen van WordPress-plug-ins: van nul tot één, hoe je je eerste functionele plug-in maakt.。
Code editors en essentiële tools
Een krachtige code-editor is onmisbaar. Visual Studio Code, PhpStorm of Sublime Text zijn allemaal uitstekende keuzen; ze bieden onder andere syntax-highlighting, intelligente suggesties voor het schrijven van code en mogelijkheden voor het oplossen van fouten (debugging). Daarnaast heb je ook een versiebeheerssysteem nodig, zoals Git, om je codeveranderingen te kunnen beheren. Hoewel de eerste plugin misschien eenvoudig te gebruiken is, is het heel belangrijk om de gewoonte te ontwikkelen om versiebeheerssysteem te gebruiken voor toekomstige ontwikkelingsprojecten.
Maak je eerste pluginbestand.
Elk WordPress-plugin begint met een hoofdbestand, dat de benodigde header-informatie bevat zodat WordPress het plugin kan herkennen.
De structuur van het hoofdbestand van de plugin
In het mapverhaal van je lokale WordPress-installatie, ga je naar...wp-content/pluginsMappen. Hier kun je een nieuwe map maken met de naammy-first-pluginDe naam moet kort zijn en de functie van het plugin beschrijven. In deze map moet een PHP-bestand worden gemaakt, dat meestal dezelfde naam heeft als de map.my-first-plugin.phpDeze bestand zal de entrypoint zijn voor het plugin.
Schrijf de headerinformatie voor het plugin
In het begin van deze hoofdfile moet je een commentaar toevoegen dat voldoet aan de WordPress-standaarden voor het plugin-head. Dit commentaar bevat basist informatie over het plugin. Hier is een eenvoudig voorbeeld:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的简单WordPress插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Deze code is het “identiteitsbewijs” van het plugin.Plugin NameDit is een vereiste; het bepaalt de naam van het plugin in het WordPress-beheerderspaneel. Het is ook aan te raden om andere gegevens, zoals de beschrijving en de versienummer, volledig in te vullen. Na het opslaan van het bestand ga je naar het “Plugins”-scherm in het WordPress-beheerderspaneel. Hier moet je “Mijn eerste plugin” zien staan in de lijst met plugins, en je kunt het activeren. Op dit moment heeft het plugin nog geen functies.
Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: maak je eerste functionaliteitsplugin van scratch。
Basic functionalities worden toegevoegd aan het plugin.
Nadat de plugin is geactiveerd, voegen we er twee basisfuncties aan: het toevoegen van aangepaste tekst aan het eind van de artikelinhoud, en het creeren van een eenvoudige beheerpagina.
Het gebruik van hooks om de inhoud van een artikel te bewerken
Het kernmechanisme van WordPress zijn de zogenoemde “hooks”. Hiermee kun je op specifieke momenten je eigen code toevoegen. Action hooks worden gebruikt om bepaalde acties uit te voeren, terwijl filter hooks worden gebruikt om gegevens te bewerken. We willen een regel tekst toevoegen aan het eind van de artikelinhoud, en dit kan worden gerealiseerd met behulp van hooks.the_contentDeze filterhaak.
Under the comments at the top of your main plugin file, add the following function and hook:
// 在文章内容末尾添加自定义文本
function myfp_add_footer_text( $content ) {
// 仅在主循环的单篇文章页面添加
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Dank je voor het lezen! Dit artikel is gemaakt door “Mijn eerste plugin”.</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' ); Nadat je het bestand hebt gesaved, moet je de webpagina van het artikel opnieuw laden. Dan zie je de toegevoegde tekst aan het onderste deel van het artikel. In deze code…myfp_add_footer_textDe functie ontvangt de originele gegevens.$contentNadat de condities van de pagina zijn gecontroleerd, wordt er een aangepast HTML-paraagraaftekst toegevoegd, en ten slotte wordt het gewijzigde content teruggegeven.add_filter()De functie verbindt onze eigen gedefinieerde functie met de kernfilters van WordPress.
Een simpel beheermenu maken
Volgens de opgegeven instructies gaan we nu een instellingenpagina voor het plugin maken in de WordPress backend. Hiervoor moet gebruik worden gemaakt van action hooks om een nieuw item te toevoegen aan het beheermenu. Voeg de volgende code toe:
// 在后台管理菜单中添加一个新页面
function myfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'my-first-plugin', // 菜单slug
'myfp_admin_page_html', // 用于输出页面内容的回调函数
'dashicons-admin-generic', // 图标(可选)
100 // 菜单位置
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );
// 定义管理页面的HTML内容
function myfp_admin_page_html() {
// 检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<p>Welkom op de instellingenpagina van “Mijn eerste plugin”. Dit is een goede eerste stap!</p>
</div>
<?php
} Sla het op en vernieuw de WordPress-beheerdersinterface. Je moet in de onderste helft van het linkermenu een nieuwe optie zien genaamd “Mijn plugins”. Klik daarop en je komt op een eenvoudige instellingenpagina. Hier…add_menu_page()De functie is verantwoordelijk voor het registreren van de topmenu-pagina.myfp_admin_page_html()De functie is verantwoordelijk voor het renderen van het HTML-content van die pagina.
Pluginbeveiliging en codeoptimalisatie
Tijdens het ontwikkelen van plugins zijn veiligheid en onderhoudbaarheid belangrijke aspecten die vanaf het begin moeten worden meegevogen.
Aanbevolen leesmateriaal Vanaf nul: waarom je zou kiezen voor het ontwikkelen van WordPress plugins?。
Datavalidatie en escape
Vertrouw nooit op invoer van gebruikers of externe data. Alles moet worden verwerkt voordat de data wordt weergegeven in de browser of wordt opgeslagen in een database. WordPress biedt tal van hulpprogramma’s (functies) hiervoor. Bijvoorbeeld wanneer je een variabele wilt weergeven in een HTML-attribuut, moet je deze eerst verwerken voordat je deze gebruikt.esc_attr()Wanneer je de tekst naar HTML exporteert, moet je < gebruiken.esc_html()Wanneer je dit naar een URL wilt sturen, moet je ervoor zorgen dat de tekst op de juiste manier wordt geformatteerd. Hier zijn enkele tips:esc_url()In de eerdere versie…myfp_admin_page_html()In de functie hebben we gebruik gemaakt van…esc_html()De pagina-titel moet veilig worden weergegeven.
Code organiseren met klassen
Naarmate er meer functies worden toegevoegd aan plugins, kan het gemakkelijk tot conflicten en verwarring leiden als alle functies in één globale namensruimte worden opgeslagen. Het is een goede gewoonte om de functies van plugins te verpakken in PHP-klassen. Dit bevordert de organisatie, leesbaarheid en herbruikbaarheid van het code. Hieronder vindt u een basiskader voor het herschrijven van onze vorige functies in klassen:
class My_First_Plugin {
// 构造方法,用于初始化钩子
public function __construct() {
add_filter( 'the_content', array( $this, 'add_footer_text' ) );
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
}
public function add_footer_text( $content ) {
// ... 函数实现同上 ...
}
public function add_admin_menu() {
// ... 函数实现同上 ...
}
public function admin_page_html() {
// ... 函数实现同上 ...
}
}
// 实例化插件类
new My_First_Plugin(); Deze methode bindt alle relevante methoden en eigenschappen samen in één object, waardoor de structuur duidelijker wordt.
Samenvatting
Met deze handleiding hebt u de belangrijkste stappen gezet om vanaf nul een WordPress-plugin te maken: u hebt een omgeving opgezet, een plugin-bestand met standaardheaderinformatie gecreëerd, functies toegevoegd aan artikelinhoud met behulp van action-hooks en filter-hooks, en een beheerinterface gemaakt. U hebt ook een eerste indruk gekregen van de belangrijkheid van veiligheid en codeorganisatie. Dit is echter maar een beginpunt; de wereld van WordPress-pluginontwikkeling is enorm uitgebreid. U kunt bijvoorbeeld kennis maken met shortcodes, widgets, custom post types en REST API- endpoints. Vergeet niet dat het lezen van de broncode, het bestuderen van de implementatie van andere goede plugins en het raadplegen van de officiële ontwikkelaarsdocumentatie de beste manieren zijn om uw kennis te verbeteren.
Veelgestelde vragen (FAQ)
Welke technieken moet je beheersen om plugins te ontwikkelen?
Om een WordPress-plugin te ontwikkelen, moet je basiskennis hebben van PHP, HTML, CSS en JavaScript. PHP is het kernonderdeel, omdat WordPress zelf in PHP is geschreven; je gebruikt PHP om de logica van het plugin te bewerken. HTML/CSS worden gebruikt om de front-end-omgeving op te bouwen, terwijl JavaScript (met name jQuery en moderne versies van ES6+) kan worden ingezet om de interactie te verbeteren en AJAX-verzoeken te verzenden. Een basiskennis van MySQL is ook handig om met gegevens te kunnen werken.
Waarom wordt mijn plugin niet weergegeven in de backend?
Controleer eerst de volgende punten: 1. Is het hoofdbestand van de plug-in geplaatst inwp-content/pluginsIn een afzonderlijke map onder de inhoudsopgave. 2. In de kopcommentaren van de plug-in van het hoofdbestand (met name <).Plugin Name:Is de indeling correct? 2) Is de bestandsindeling UTF-8 zonder BOM? 3) Zijn er syntaxfouten waardoor de PHP-parsing is mislukt? Je kunt de debuglog van WordPress controleren (hiervoor heb je wel toegang tot de server nodig).wp-config.phpActiverenWP_DEBUG)。
Hoe test je een plugin zonder dat het de online website beïnvloedt?
Het wordt sterk aanbevolen om plugins te ontwikkelen en te testen in een lokale ontwikkelomgeving (zoals Local by Flywheel of XAMPP) of op een aparte testserver (Staging Site). Test nooit ongeverifieerde nieuwe plugins rechtstreeks op een live-website waar belangrijke gegevens zijn opgeslagen. Gebruik versiebeheerstools (zoals Git) om het codebestand te beheren, zodat je eenvoudig kunt terugkeren naar een vorige versie in het geval van problemen.
Hoe moet een plugin worden bijgewerkt naar een nieuwe versie?
Je moet de informatie in de commentaren aan het begin van het hoofdbestand van het plugin updaten.Version:Voor grotere updates wordt het aanbevolen om semantische versiebeheer (SemVer) te gebruiken. Bij het fixen van een bug wordt bijvoorbeeld een revisienummer toegevoegd (1.0.1); nieuwe, backwards-compatibele functies krijgen een subversienummer (1.1.0), en niet-compatibele updates een hoofdversienummer (2.0.0). Je kunt ook een update-detectiemechanisme implementeren (bijvoorbeeld door de plugin-informatie op je eigen server of in de WordPress-plugincatalogus te hosten), zodat gebruikers bericht krijgen van nieuwe updates in de backend.
Welke vereisten zijn er om een plugin te publiceren in het officiële catalogus?
Als u een plug-in wilt indienen bij de officiële plug-incatalogus van WordPress.org, moet u voldoen aan de volgende belangrijke voorwaarden: de plug-incode moet compatibel zijn met de GPLv2-licentie of een latere versie; de codekwaliteit moet voldoen aan de WordPress-codeerstandaarden; de functionaliteit moet algemeen en praktisch zijn en mag niet specifiek voor een bepaalde website zijn gemaakt; en er mag geen kwaadaardige code of spammy links in zitten. Lees vóór indienen de gedetailleerde indieningsrichtlijnen en vereisten in het ontwikkelaarscentrum van de officiële catalogus zorgvuldig door.
De volgende stap, wat moeten we als volgende doen?
Voor meer informatie en praktische kennis
De volgende content is relevant voor het onderwerp van dit artikel en is geschikt voor verder lezen. Het kan vaak effectief zijn om eerst het artikel te lezen dat het dichtst bij uw huidige vraagstuk staat en vervolgens geleidelijk aan artikelen over aanverwante onderwerpen te bekijken.
- WordPress Basisgids: Bouw je eerste professionele website vanuit het niets
- Wat is WordPress? Een uitgebreide introductie in het Content Management Systeem (CMS)
- Voordracht: Waarom kiezen voor WordPress voor ontwikkeling?
- Hoe kies je en maak je je eigen perfecte WordPress-thema?
- WordPress: Van het beginnen tot meesterdom: Een volledig handboek voor het maken van professionele websites