WordPress-pluginontwikkelingsomgeving en basisvoorbereidingen
Voordat u met het schrijven van code begint, is een stabiele en geisoleerde ontwikkelomgeving de eerste stap naar succes. Dit beschermt niet alleen uw live-website tegen de invloed van testcode, maar maakt ook het afstelproces soepeler.
Het opzetten van een lokale ontwikkelomgeving.
Het wordt aanbevolen om lokale serversoftwarepakketen te gebruiken, zoals Local by Flywheel, XAMPP of MAMP. Met deze tools kunt u in één stap een compleet omgeving instellen dat PHP, MySQL en Apache/Nginx bevat. Zorg ervoor dat uw PHP-versie overeenkomt met de vereisten van de WordPress-versie die u wilt gebruiken; het wordt meestal aanbevolen om PHP 7.4 of een hogere versie te gebruiken voor betere prestaties en meer veiligheidsvoorzieningen.
Maak het hoofdbestand van het plugin.
Elk WordPress-plugin moet een hoofdbestand hebben, dat de entreepunt van het plugin is. Dit bestand moet worden opgeslagen in een specifieke map binnen het WordPress-installatiepad. wp-content/plugins De plugin moet worden opgeslagen in een aparte map binnen de directory, en moet worden genoemd met een unieke naam. Als u bijvoorbeeld een plugin wilt maken voor groeten, kunt u een map met de naam “Groeten” maken. my-first-plugin De map en een hoofdbestand maken in die map. my-first-plugin.php。
Aanbevolen leesmateriaal Ultimate Guide to WordPress Plugin Development: Build Commercial-Grade Plugins from Scratch。
De opening van deze bestand moet een specifieke commentaar met plugin-informatie bevatten, waardoor WordPress de basisgegevens van de plugin kan krijgen. 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
*/ Core structure van plugins en het hook-mechanisme
Het kernpunt van het ontwikkelen van WordPress-plug-ins is om het systeem van “hooks” (haakjes) te begrijpen en te gebruiken. Hooks bieden de mogelijkheid om uw code op specifieke momenten in de kernprocessen van WordPress in te voegen, waardoor u functies kunt veranderen of toevoegen zonder de kernbestanden te hoeven aanpassen.
Het begrijpen van action-hooks en filter-hooks
Er zijn voornamelijk twee categorieën hangijzers (hooks): acties (Actions) en filters (Filters). Hangijzers van type actie uitvoeren uw code wanneer een bepaald evenement plaatsvindt, bijvoorbeeld wanneer een artikel wordt gepubliceerd of wanneer de beheeromgeving wordt geladen. add_action() Er zijn functies beschikbaar voor het mounten (het toevoegen van data aan een object of systeem). Filterhooks worden gebruikt om gegevens te bewerken; ze bieden de mogelijkheid om de waarden van gegevens te veranderen voordat deze naar de database of de browser worden gestuurd. add_filter() Een functie die wordt gebruikt om iets te mounten.
Als je bijvoorbeeld wilt dat er een aangepaste tekst wordt weergegeven in de voetnoot van een website-pagina, kun je dit doen met... wp_footer Deze actie-hook:
function myplugin_add_footer_text() {
echo '<p style="text-align:center;">Fijn dat je deze website gebruikt!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' ); Een pagina voor plug-inbeheer maken
Veel plugins vereisen een instellingenpagina in het WordPress-beheerpaneel. Dit wordt meestal gerealiseerd door de plugin te koppelen (of te ‘mounten’) aan een specifieke locatie in het beheerpaneel. admin_menu Dit wordt gerealiseerd met action-hooks. U moet een functie definiëren en deze functie gebruiken om de gewenste acties uit te voeren. add_menu_page() 或 add_options_page() Maak gebruik van functies om de pagina te registreren, en definieer een andere functie om de HTML-inhoud van de pagina uit te geven.
Aanbevolen leesmateriaal Van nul af: Een volledig handboek en praktische handleiding voor het ontwikkelen van WordPress plugins。
function myplugin_add_admin_menu() {
add_options_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限
'myplugin-settings', // 菜单别名
'myplugin_render_settings_page' // 用于显示页面内容的函数
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
function myplugin_render_settings_page() {
?>
<div class="wrap">
<h2>Mijn plug-ininstellingen</h2>
<form method="post" action="/nl/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'myplugin_settings_group' );
do_settings_sections( 'myplugin-settings' );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Implementeren van plugin-functies en dataverwerking
Een compleet plugin moet meestal omgaan met gebruikersinvoer, instellingen opslaan en communiceren met een database. WordPress biedt een krachtig API om deze processen te versimpelen.
De opties worden gespeeld op met behulp van de API voor instellingen.
Het handmatig verwerken van formulierinzendingen en database-operaties is zowel tijdrovend als onveilig. WordPress biedt via zijn API een gestandaardiseerde en veilige manier om instellingen te registreren, te verifiëren en op te slaan. Hiervoor worden drie kernfuncties gebruikt:register_setting()、add_settings_section() 和 add_settings_field()。
Het volgende voorbeeld toont hoe je een tekstveld kunt registreren en instellen:
function myplugin_settings_init() {
register_setting( 'myplugin_settings_group', 'myplugin_greeting_text' );
add_settings_section(
'myplugin_section',
'基础设置',
null,
'myplugin-settings'
);
add_settings_field(
'myplugin_field_greeting',
'问候语',
'myplugin_field_greeting_render',
'myplugin-settings',
'myplugin_section'
);
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );
function myplugin_field_greeting_render() {
$value = get_option( ‘myplugin_greeting_text’, ‘你好,世界!’ );
echo ‘<input type=“text” name=“myplugin_greeting_text” value=“’ . esc_attr( $value ) . ‘” />’;
} Een aangepaste database-tabel maken
Voor plugins die complexe relatiegegevens moeten opslaan, is het mogelijk dat u een aangepaste database-tabel moet maken. Dit gebeurt meestal wanneer de plugin wordt aktiveerd. U moet een functie schrijven en deze koppelen aan de registratie- en activeringshook van WordPress. dbDelta() Deze functie wordt gebruikt om SQL-opdrachten uit te voeren voor het creeren of bijwerken van tabellen, en kan intelligente manieren bedenken om veranderingen in de structuur van de tabellen te verwerken.
Allereerst moet u de activatie-hook registreren in uw hoofdpluginbestand:
register_activation_hook( __FILE__, ‘myplugin_create_database_table’ ); Vervolgens wordt de functie gedefinieerd voor het maken van een tabel:
Aanbevolen leesmateriaal WordPress-pluginontwikkelingsgids: van nul beginnen met het maken van je eerste plugin。
function myplugin_create_database_table() {
global $wpdb;
$table_name = $wpdb->prefix . ‘myplugin_data’;
$charset_collate = $wpdb->get_charset_collate();
$sql = “CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
email varchar(100) NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;”;
require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
dbDelta( $sql );
} Pluginbeveiliging, internationalisering en voorbereiding op publicatie
De geïmplementeerde plugins moeten worden versterkt op het gebied van security, worden gelocaliseerd naar verschillende talen en worden op een gestructureerde manier gepackt, voordat ze veilig kunnen worden geleverd aan gebruikers of kunnen worden ingediend in de officiële catalogus.
Veilige best practices implementeren
Veiligheid is van het hoogste belang bij het ontwikkelen van plugins. Verifieer altijd de invoer van gebruikers (controleer de formatie) en reinig deze invoer (verwijder eventuele schadelijke onderdelen). Gebruik de functies die WordPress biedt voor deze doeleinden. esc_html()、esc_attr()、sanitize_text_field() Deze tekst bevat instructies voor het ophalen of verwerken van data. Bij het uitvoeren van een databasequery worden bepaalde methoden of technieken gebruikt. $wpdb->prepare() Methoden om SQL-injectieaanvallen te voorkomen. Daarnaast wordt... current_user_can() Controleer de gebruikersrechten om zeker te stellen dat alleen geautoriseerde gebruikers gevoelige acties kunnen uitvoeren.
Internationalisatie van plugins realiseren
Om uw plugin beschikbaar te maken voor gebruikers overal ter wereld, is internationaleisering (i18n) nodig. Dit betekent dat alle teksten die worden gebruikt door de gebruiker niet rechtstreeks in de code mogen worden opgenomen, maar moeten worden omhuld met de vertaalfuncties van WordPress. De meest gebruikelijke functie hiervoor is… () Gebruikt voor het weergeven van de vertaling.() Om de vertaalde tekst te verkrijgen, en ook... _e() Gebruikt voor de directe weergave van de vertaling.
In uw code moet dit zo worden geschreven:
$greeting = __( ‘你好,世界!’, ‘my-first-plugin’ );
echo esc_html( $greeting );
_e( ‘设置已保存。’, ‘my-first-plugin’ ); Let op: de tweede parameter in de vertaalfunctie, “Text Domain”, moet overeenkomen met de definitie in de commentaren bovenin het plugin. Text Domain Volledig overeenkomstig. Daarna kunt u tools gebruiken zoals Poedit om de vertaling te genereren. .pot Templatebestanden, bedoeld voor vertalers om mee te werken .po 和 .mo Vertaalde bestand:
Samenvatting
Het ontwikkelen van WordPress-plug-ins is een proces waarbij creativiteit wordt omgezet in functionele mogelijkheden, en dit is gebaseerd op een diepe begrip van de kernarchitectuur van WordPress, met name het hook-systeem. Van het opzetten van de omgeving, het schrijven van de belangrijkste bestanden, het gebruiken van action- en filter-hooks, tot het verwerken van data met de setting-API en database-API: ieder stap volgt een duidelijk patroon. Uiteindelijk kan uw plugin, dankzij strenge veiligheidsmaatregelen en volledige internationale ondersteuning, worden veranderd van een persoonlijk project in een product dat beschikbaar is voor anderen. Nadat u deze basisprincipes onder de knie hebt, kunt u zich verder ontwikkelen in complexere gebieden, zoals het aanpassen van artikeltypen, het integreren van REST-API's en het ontwikkelen van Gutenberg-blokken, waardoor u nog krachtigere en modernere WordPress-uitbreidingen kunt bouwen.
Veelgestelde vragen (FAQ)
Is het vereist om vloeiend PHP te beheersen om een WordPress-plugin te ontwikkelen?
Ja, PHP is de belangrijkste programmeeringstaal voor het ontwikkelen van WordPress en zijn plugins. Je moet de basisgrammatiek van PHP, functies, arrays en concepten van objectgericht programmeren beheersen. Het is ook essentieel om een basiskennis van HTML, CSS en JavaScript te hebben, omdat je met de front-end-weergave en interactie moet werken.
Hoe debug je een WordPress-plugin die je aan het ontwikkelen bent?
Het wordt aanbevolen om de debug-modus van WordPress te activeren. wp-config.php In het bestand wordt… WP_DEBUG De constante is ingesteld op... trueDit zorgt ervoor dat alle PHP-fouten, waarschuwingen en berichtgeving op het scherm worden weergegeven. Daarnaast is het ook mogelijk om… error_log() De functie schrijft de fouteninformatie op in het foutenlog van de server, of gebruikt de ontwikkelaarstools van de browser voor het debuggen van JavaScript-code op de frontkant (frontend).
Hoe voorkom je dat de namen van functies in een plugin niet in conflict komen met die van andere plugins?
Om conflicten met functionnamen, klassenamen of constantennamen te voorkomen, moet u altijd een unieke prefix gebruiken. De beste praktijk is om de naam van het plugin of een afkorting hiervan als prefix te gebruiken. Als uw plugin bijvoorbeeld “Awesome Slider” heet, kunt u een prefix als ‘aws’ gebruiken, waardoor de namen van functies, klassen of constanten bijvoorbeeld ‘awsSliderFunction’, ‘awsSliderClass’ of ‘awsSliderConstant’ worden. as_ 或 awesome_slider_ Als prefix voor alle zelfgemaakte functies. Voor de namen van klassen moet hetzelfde principe worden gevolgd.
Kan je betaalde plugins indienen in de officiële WordPress-plugincatalogus?
Nee, dat is niet mogelijk. Het officiële WordPress-pluginverzeichnis accepteert alleen plugins die voldoen aan de GPL-licentie en volledig gratis zijn. Als u een betaalde (geavanceerde) plugin ontwikkelt, moet u deze op uw eigen website distribueren en verkopen. Er zijn echter veel betaalde plugins die een gratis versie aanbieden met basisfuncties, die kunnen worden ingediend in het officiële verzeichnis als promotie- en testmogelijkheid voor de geavanceerde versie.
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.
- Analyse van het hele proces van websiteontwerp en bouw: technische praktijken van nul tot livegoed en een gids voor SEO-optimalisatie
- WordPress-pluginontwikkelingsgids: van nul tot één: maak je eerste eigen plugin
- Werken als WordPress-pluginontwikkelaar: een volledig handboek van nul tot één
- Ultimatum Gids voor Websitebouw: Een gedetailleerde uitleg van het professionele ontwikkelingsproces van nul tot één
- Webdesign van het begin tot de volmaaktheid: een compleet praktisch handboek en technische uitleg voor het bouwen van professionele websites