WordPress is het populairste content management systeem ter wereld, en de grote schaalbaarheid van WordPress is voornamelijk te danken aan de plugins. Met het ontwikkelen van plugins kun je extra, aangepaste functies toevoegen aan je website zonder de kerncode te hoeven aanpassen. In deze handleiding wordt je stap voor stap geleid door het proces van het maken van je eerste functionaliteitsplugin, van het voorbereiden van je omgeving, het schrijven van de code tot het publiceren en testen van het resultaat.
Forbereidende werkzaamheden en opzet van de omgeving
Voordat je de eerste regel code schrijft, heb je een geschikte ontwikkelomgeving nodig. Dit bevordert niet alleen de efficiëntie, maar beschermt je ook tegen de risico's die kunnen ontstaan bij het debuggen op een echte website.
Een lokale ontwikkelomgeving opzetten
Het wordt aanbevolen om lokale serversoftwarepakketten te gebruiken, zoals XAMPP, MAMP of Laragon. Met deze pakketten kunnen Apache, MySQL en PHP in één stap worden geïnstalleerd, waardoor de omgeving perfect wordt nagemaakt zoals op een live server. Zorg ervoor dat je PHP-versie compatibel is met de versie van WordPress die je gaat gebruiken; de officiële WordPress-website biedt meestal up-to-date vereisten voor de PHP-versie.
Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: maak je eerste functionaliteitsplugin van scratch。
WordPress installeren en een code-editor gebruiken
Installeer een nieuwe WordPress-site op uw lokale server, bedoeld voor het ontwikkelen en testen van plugins. Kies ook een krachtige code-editor, zoals Visual Studio Code of PhpStorm. Deze editors ondersteunen PHP-syntaxverlichting, codevoorstellen en debugging, waardoor u een veel betere coderingervaring krijgt.
Maak je eerste pluginbestand.
Een zeer basist WordPress-plugin kan bestaan uit maar één bestand. We beginnen met een simpel “Hello World”-plugin om de structuur van een plugin te begrijpen.
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 hoofdplugin-bestand maken, dat meestal de naam van het plugin draagt. my-first-plugin.php。
Elk plugin moet in het begin van het bestand specifieke commentaren met informatie over het plugin bevatten; dit is essentieel voor WordPress om het plugin te herkennen. Hier is een eenvoudig voorbeeld:
<?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
*/ Nadat je de bestand hebt gesaved, ga je naar de “Plugins”-pagina in het WordPress-administratiepaneel. Hier zie je de plugin en kun je deze activeren. Hoewel de plugin op dit moment nog geen functies heeft, heb je met succes een compliante plugin-structuur gecreëerd.
Aanbevolen leesmateriaal Ik leer je stap voor stap hoe je vanaf nul WordPress-plug-ins kunt ontwikkelen.。
Basic functies toevoegen aan de plugin
Nadat de plugin is geactiveerd, voegen we er een simpel functie aan: een regel met aangepaste tekst in de voetnoot van de website. Hiervoor gebruiken we WordPress. wp_footer Hook.
Under de annotaties van de plugin-informatie, voeg de volgende code toe:
// 在网站页脚输出自定义文本
function myfp_add_footer_text() {
echo '<p style="text-align: center;">Fijn dat je mijn eerste plugin hebt gebruikt!</p>';
}
add_action( 'wp_footer', 'myfp_add_footer_text' ); Sla de bestand op en vernieuw de front-end van de website. Dan zie je deze tekst in het midden onderaan de pagina. Dit voorbeeld toont hoe dit te doen is. add_action() De functie “monteert” je eigen gedefinieerde functie op de kernpunten van de uitvoering van WordPress.
Een praktische beheerfunctie implementeren
Een compleet plugin moet in principe een configuratieinterface bieden in het WordPress-beheerpaneel. Hierna gaan we een eenvoudige instellingenpagina toevoegen aan het plugin, zodat de beheerder de tekst die in de voetnoot wordt weergegeven kan aanpassen.
Maak een pagina met een beheermenu.
We moeten een submenupagina toevoegen onder het menu “Instellingen” in de backend. Hiervoor is enkele technische ondersteuning nodig. add_options_page() Functie.
Eerst moet een functie worden gemaakt om de HTML-content van de instellingenpagina te genereren, en deze vervolgens te laden op de gewenste plek. admin_menu Aan de haak.
Aanbevolen leesmateriaal Vanaf nul: waarom je zou kiezen voor het ontwikkelen van WordPress plugins?。
// 添加插件设置页面到后台菜单
function myfp_add_admin_menu() {
add_options_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限(管理员)
'my-first-plugin', // 菜单slug
'myfp_settings_page' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );
// 设置页面的HTML内容
function myfp_settings_page() {
?>
<div class="wrap">
<h1>Mijn eerste plugin-instellingen</h1>
<form method="post" action="/nl/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'myfp_settings_group' ); // 设置字段组
do_settings_sections( 'my-first-plugin' ); // 设置区域
submit_button(); // 提交按钮
?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Registratie-instellingen, velden en gegevensopslag
Een enkele pagina is niet genoeg; we moeten de WordPress API gebruiken om opties veilig te registreren, te verificeren en op te slaan. Hiervoor zijn drie belangrijke functies nodig:register_setting(), add_settings_section() 和 add_settings_field()。
// 初始化插件设置
function myfp_settings_init() {
// 注册一个新的设置项到数据库的 `wp_options` 表
register_setting( 'myfp_settings_group', 'myfp_footer_text' );
// 在设置页面添加一个区域
add_settings_section(
'myfp_section',
'页脚文字设置',
null, // 区域描述回调函数,这里不需要
'my-first-plugin'
);
// 在刚添加的区域里创建一个字段
add_settings_field(
'myfp_field_footer',
'显示的文本',
'myfp_field_footer_cb', // 用于输出字段HTML的回调函数
'my-first-plugin',
'myfp_section'
);
}
add_action( 'admin_init', 'myfp_settings_init' );
// 渲染文本输入字段的回调函数
function myfp_field_footer_cb() {
$text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' ); // 获取已保存的值
echo '<input type="text" name="myfp_footer_text" value="' . esc_attr( $text ) . '" class="regular-text">';
echo '<p class="description">De tekst die hier wordt ingevoerd, zal worden weergegeven in de voetnoot van de website.</p>';
} De update-functie is verbeterd om de opgeslagen instellingen te gebruiken.
Ten slotte: wijzigen we wat we eerder hebben geschreven. myfp_add_footer_text Een functie die de waarden opslaat die de beheerder in de database heeft ingesteld, en deze waarden vervolgens uit de database laadt.
function myfp_add_footer_text() {
$footer_text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' );
if ( ! empty( $footer_text ) ) {
echo '<p style="text-align: center;">'`.esc_html($footer_text)`.'</p>';
}
}
add_action( 'wp_footer', 'myfp_add_footer_text' ); Nu kun je inloggen in het WordPress-administratiepaneel, naar “Instellingen” gaan, vervolgens naar “Mijn plugins”. Hier kun je de tekst in de voetnoot wijzigen en opslaan. Herlaad de website om de aangepaste inhoud te zien.
Pluginbeveiliging, optimalisatie en voorbereiding op publicatie
Een kwalitatief goede plugin moet rekening houden met de beste praktijken op het gebied van veiligheid, prestaties en internationalisatie.
Datavalidatie en ontsnapping realiseren
Vertrouw nooit op gegevens die door gebruikers worden ingevoerd of rechtstreeks uit de database worden gehaald. In het bovenstaande voorbeeld hebben we dit gebruik. esc_attr() Om attributen in invoervelden te ontsluiten, moet je ze gebruiken. esc_html() Eerst moet de output worden geëscapiseerd op de front-end. Voor complexere scenario's moet hiervoor een andere aanpak worden gebruikt. sanitize_text_field() Om de invoer te reinigen, gebruik… wp_kses_post() Om veilige HTML-uitstoot te mogelijk te maken…
Internationalisatieondersteuning toevoegen
Om ervoor te zorgen dat de plugin door gebruikers wereldwijd gebruikt kan worden, is het nodig om alle teksten die worden getoond aan de gebruiker te vertalen. Hiervoor moet gebruik worden gemaakt van… __() 和 _e() Functies als ‘wait’ worden gebruikt, en tekstvelden worden gedefinieerd.
De commentaren in het hoofddeel van het plugin worden bijgewerkt om zeker te stellen dat... Text Domain Het moet overeenkomen met de latere oproepen. Vervolgens moet de tekst in de code worden gewijzigd, bijvoorbeeld:
// 在设置字段描述中使用国际化函数
echo '<p class="description">' . esc_html__( '这里输入的文字将显示在网站页脚。', 'my-first-plugin' ) . '</p>';
// 在输出函数中使用
$default_text = __( '感谢使用我的第一个插件!', 'my-first-plugin' );
$footer_text = get_option( 'myfp_footer_text', $default_text ); Daarna kunt u tools gebruiken zoals Poedit om de vertaling te bewerken of te bewaren. .pot Templatebestanden, bedoeld voor vertalers om mee te werken .po 和 .mo Vertaalde bestand:
Voer de eindtesten uit en pak het product op.
Voordat je het plugin publiceert, is het nodig om de functionaliteit van het plugin te testen in verschillende omgevingen (bijvoorbeeld met verschillende versies van PHP en WordPress). Zorg ervoor dat acties als activeren, deactiveren, instellingen opslaan en gegevens verwijderen geen fouten veroorzaken of dat er geen overtollige gegevens achterblijven. Je kunt een uninstallatie- en schoonmaakfunctie schrijven om deze processen te regelen. register_uninstall_hook() Optie om de database te reinigen wanneer een gebruiker een plugin verwijdert.
Ten slotte compresseer je de map met je plugins tot een zip-bestand. .zip Deze compressiebestand kan rechtstreeks worden geïnstalleerd via de “Upload Plugin”-functie in het WordPress-administratiepaneel. Het voldoet ook aan de vereisten voor het indienen van een plugin in de officiële WordPress-plugincatalogus.
Samenvatting
Met deze handleiding heb je het hele proces afgerond om van scratch een volledig functionerende WordPress-plugin te bouwen. Je hebt geleerd hoe je de basisbestanden van een plugin maakt, hoe je functies toevoegt met action hooks, hoe je een administratieve interface bouwt met behulp van de WordPress Settings API, en hoe je rekening houdt met aspecten als veiligheid, internationalisering en het pakken van je plugin. Hoewel deze simpele voetnotentext-plugin eenvoudig is, vormen de onderliggende structuur van de plugin, het hook-systeem en de Settings API de basis voor het ontwikkelen van elke complexere plugin. In de toekomst kun je meer geavanceerde functies ontdekken, zoals shortcodes, aangepaste artikeltypen en REST API- endpoints, waarmee je je pluginontwikkelingsvaardigheden verder kunt verbeteren.
Veelgestelde vragen (FAQ)
Is het vereist om PHP te beheersen om WordPress-plugins te ontwikkelen?
Ja, PHP is de kernprogrammeringstaal voor het ontwikkelen van WordPress en zijn plugins. Je moet de basisgrammatiek van PHP, functies, arrays en objectgerichte programmering begrijpen. Het is ook handig om kennis te hebben van HTML, CSS en basis-JavaScript, aangezien dit nodig is voor het ontwikkelen van plugins met een gebruikersinterface.
Kan de naam van het hoofdbestand van de plugin worden gekozen naar eigen keuze?
Ja, dat is mogelijk, maar het moet wel overeenkomen met de naam van het hoofd-PHP-bestand in de map met de plugins. Meestal heet het hoofdbestand dezelfde naam als de map met de plugins, of heeft het een duidelijke naam om het gemakkelijk te herkennen. index.phpHet belangrijkste is dat de bestandskoppen de juiste commentaarblokken met informatie over de plugins moeten bevatten. WordPress herkent de plugins namelijk door deze commentaarblokken te analyseren.
Waarom werken de instellingen van mijn plugin niet meer nadat ze zijn opgeslagen?
Volg de volgende stappen om het probleem op te sporen: Eerst moet je ervoor zorgen dat alle instellingen correct zijn. register_setting() Het registratieproces is correct afgerond, en… settings_fields() De naam van het instellingenpakket in de functionaal call correspondeert met de gewenste waarde. Daarna moet de formulier worden gecontroleerd… action Does de eigenschap naar iets anders verwijzen? options.phpTen slotte: wanneer je de uitgegeven inhoud op de front-end weergeeft, moet je controleren of je de juiste technologieën of methoden gebruikt. get_option() De functie wordt opgeroepen, en de namen van de overgedragen opties zijn exact dezelfde als tijdens het registreren.
Hoe kan ik zorgen dat mijn plugin de gegevens verwijdert wanneer het wordt uitgeschakeld?
Je kunt gebruikmaken van register_uninstall_hook() Er is een functie beschikbaar om een uninstall-hook te registreren. In de callback-functie van deze hook kun je verschillende acties uitvoeren. delete_option() Een functie om alle door de plugin gecreëerde database-opties te verwijderen. Het is belangrijk te weten dat deze actie niet te herstellen is, en dient alleen uit te worden voeren wanneer de gebruiker expliciet heeft gekozen om de plugin te “verwijderen”, en niet om de plugin te “uit te schakelen”.
Kan je gratis plugins indienen in de officiële WordPress-directory?
Ja, WordPress beveelt ontwikkelaars aan om gratis plugins die voldoen aan de vereisten in te sturen naar hun officiële plugincatalogus. Hiervoor moet je een account op WordPress.org hebben en de instructies voor het indienen van plugins aandachtig lezen. Je code moet voldoen aan bepaalde coderingsteksten en mag geen schadelijke code of inhoud bevatten die de licentieovereenkomsten schendt. Na het succesvolle indienen kunnen gebruikers je plugin rechtstreeks vanuit het WordPress-beheerpaneel zoeken en installeren.
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.
- Hoe kies je en maak je je eigen perfecte WordPress-thema?
- WordPress-pluginontwikkelingsgids: van nul tot één: maak je eerste eigen plugin
- Werken als WordPress-pluginontwikkelaar: een volledig handboek van nul tot één
- Van nul naar één: een volledige handleiding en praktische tips voor het bouwen van professionele websites met WordPress.
- Volledig handboek voor het ontwikkelen van WordPress plugins: van het begin tot de volmaakte beheersing van professionele uitbreidingen