Core concepts and preparatory work
WordPress-pluginontwikkeling betekent dat je naast de core-functionaliteiten van WordPress onafhankelijke PHP-codemodules schrijft om de mogelijkheden van een website uit te breiden en te verbeteren. Het begrijpen van de werking ervan is de eerste stap naar succes. WordPress gebruikt een eventgedreven (hook- en filter-) en objectgerichte programmeringstechniek. Een plugin bestaat in feite uit één of meerdere PHP-bestanden die via door WordPress vooraf gedefinieerde interfaces met de core-interacteren, waardoor veilige toevoegingen aan de functionaliteit van de website mogelijk zijn.
Voor het ontwikkelen heb je een stabiele lokale of testserveromgeving nodig. Het wordt sterk aanbevolen om lokale serversoftware te installeren, zoals XAMPP, Local by Flywheel of DevKinsta. Zorg ervoor dat je ook een codeeditor hebt (bijvoorbeeld VS Code of PhpStorm) en dat de debug-modus van WordPress is ingeschakeld.wp-config.phpIn het bestand zijn enkele constante ingesteld:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false ); ActiverenWP_DEBUG_LOGDaarna wordt de foutmelding vastgelegd./wp-content/debug.logIn het bestand is dit van cruciaal belang voor het opsporen van problemen.
Aanbevolen leesmateriaal Een geavanceerde handleiding voor het ontwikkelen van WordPress-thema's: een praktische tutorial van beginner tot expert。
Maak je eerste plugin.
Maak een plugin door eerst met de basis te beginnen.../wp-content/plugins/Maak een aparte map in de map.my-first-pluginIn deze map moet je een hoofd-PHP-bestand maken. De naam van het bestand is meestal gelijk aan de naam van de map.my-first-plugin.php。
Schrijf de headerinformatie voor het plugin
Elke WordPress-plugin moet een standaard commentaar in de kop van het plugin hebben; dit is de “identiteitskaart” waarmee WordPress de plugin herkent. De commentaar moet zich bevinden aan het begin van het hoofdbestand en worden opgevolgd door een specifiek format.Plugin NameAndere informatie, zoals beschrijvingen, versies en auteurs, is ook zeer belangrijk.
<?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
* Domain Path: /languages
*/ Deze commentaar zorgt ervoor dat je plugin wordt weergegeven in de “Plugins”-lijst in het WordPress-administratiepaneel, en de hierboven genoemde informatie wordt getoond.Text Domain和Domain PathDit is bedoeld voor de internationaleisering (vertaling) van plugins.
Een basisfunctie implementeren
Laten we nu een eenvoudige functie toevoegen aan het plugin: automatisch een aangepast tekstfragment toevoegen aan het onderste deel van de artikelinhoud. Hiervoor worden de “filters” (Filters) van WordPress gebruikt. Filters bieden de mogelijkheid om gegevens te bewerken voordat deze worden opgeslagen in de database of naar de browser worden gestuurd.
We zullen dit gebruiken.the_contentDeze filter: voeg de volgende code toe in je hoofdpluggifail, na de commentaren in het begin:
Aanbevolen leesmateriaal Ultimatum-handboek voor het ontwikkelen van WordPress-plug-ins: bouw je eerste plugin van scratch。
// 在文章内容末尾添加自定义文本
function myfp_add_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = ‘<p><em>Fijn dat je dit artikel hebt gelezen! Het wordt ondersteund door “Mijn eerste plugin”.</em></p>’;
$content .= $custom_text;
}
return $content;
}
add_filter( ‘the_content’, ‘myfp_add_text_to_content’ ); Na het opslaan van het bestand, ga je naar de WordPress-beheeromgeving om dit plugin te activeren. Wanneer je een artikel bekijkt, zie je de toegevoegde tekst aan het eind van het artikel.myfp_add_text_to_contentDit is een door ons gedefinieerde functie die de inhoud van een artikel als parameter accepteert.$contentWanneer de voorwaarden worden vervuld (het gaat om één artikel en de tekst zich bevindt in de hoofdloop), wordt een extra tekstsegment toegevoegd, waarna de gewijzigde inhoud wordt teruggegeven.add_filter()De functie maakt deze zelfgemaakte functie beschikbaar voor gebruik.the_contentOp de filter.
Interactie bouwen met behulp van hooks en filters
De kracht van WordPress-plug-ins ligt in het uitgebreide systeem van hangijzers (hooks), waaronder Action Hooks en Filter Hooks. Action Hooks bieden je de mogelijkheid om code op bepaalde momenten uit te voeren, terwijl Filter Hooks je in staat stellen om gegevens te bewerken.
Maak gebruik van action-hooks om een beheermenu toe te voegen.
Stel dat we een instellingenpagina willen toevoegen aan een plugin, en dat hiervoor action-hooks worden gebruikt.admin_menuHet wordt geactiveerd tijdens het bouwen van het menu in de WordPress-beheeromgeving.
// 添加插件设置页面到后台菜单
function myfp_add_admin_menu() {
add_menu_page(
‘我的插件设置’, // 页面标题
‘我的插件’, // 菜单标题
‘manage_options’, // 权限要求
‘myfp-settings’, // 菜单slug
‘myfp_settings_page’, // 用于显示页面内容的回调函数
‘dashicons-admin-generic’, // 图标(可选)
80 // 菜单位置
);
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ );
// 定义设置页面的显示内容
function myfp_settings_page() {
?>
<div class="“wrap”">
<h1><?php esc_html_e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
<p><?php esc_html_e( ‘这是你的第一个插件设置页面。’, ‘my-first-plugin’ ); ?></p>
<form method="“post”" action="/nl/“options.php”/" data-trp-original-action="“options.php”">
<?php
// 后续可以在这里添加设置字段
settings_fields( ‘myfp_settings_group’ );
do_settings_sections( ‘myfp-settings’ );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Nadat je de plugin hebt geactiveerd, zie je aan de linkerkant in de backend een nieuwe menuoptie genaamd “Mijn plugins”. Door daarop te klikken kom je op de pagina waar je de instellingen van de plugin kunt aanpassen.add_menu_pageDe functie is cruciaal; deze registreert een hoofdmenu-pagina.
Creëer kortere codes om de functionaliteit van de pagina te verbeteren.
Shortcodes zijn een krachtig hulpmiddel dat het gebruikers gemakkelijk maakt om functies van plugins in artikelen of pagina's in te roepen. Je kunt ze dus gebruiken om...add_shortcode()Een functie om een kort code-teken te registreren.
// 创建一个显示当前时间的短代码
function myfp_current_time_shortcode( $atts ) {
// 使用 shortcode_atts 设置默认属性并合并用户输入
$attributes = shortcode_atts( array(
‘format’ => ‘Y-m-d H:i:s’,
), $atts );
// 根据属性格式化当前时间
$current_time = date( $attributes[‘format’] );
// 返回要显示的内容,确保进行转义
return ‘<p>De huidige tijd is: ’. esc_html($current_time).‘</p>’php
add_shortcode(‘show_time’, ‘myfp_current_time_shortcode’); Nu kunnen gebruikers tekst invoeren in de artikeleditor.[show_time format=“F j, Y”]Deze kortere code wordt gebruikt om de geformatteerde huidige datum weer te geven.myfp_current_time_shortcodeDe array met ontvangen attributen wordt gebruikt om de HTML-content te genereren die vervolgens op de pagina moet worden ingevoegd.
Aanbevolen leesmateriaal WordPress-pluginontwikkeling van het begin tot de volmaaktheid: een compleet handboek voor het maken van persoonlijke websites。
Sicherheid van plugins en beste praktijken
Tijdens het ontwikkelen van plugins is veiligheid een belangrijke overweging. Onveilige code kan leiden tot dat een website wordt geïnfecteerd. Het is van essentieel belang om de volgende beste praktijken te volgen.
Datavalidatie, ontsnapping en schoonmaken
Alle gegevens die afkomstig zijn van gebruikers of externe bronnen (bijvoorbeeld...)$_GET, $_POST, $_COOKIEAl deze gegevens zijn onbetrouwbaar. Vooraleer ze worden gebruikt in database-vraagstellingen of worden weergegeven in de browser, moeten ze worden verwerkt.
- Wanneer de gegevens in de browser worden weergegeven, moet gebruik worden gemaakt van escape-functies om te voorkomen dat de gegevens in een niet-gecontroleerde vorm worden weergegeven (XSS-aanvallen). WordPress biedt verschillende escape-functies afhankelijk van het context.
esc_html()(Gebruikt voor HTML-elementen)esc_attr()(Gebruikt in HTML-attributen)esc_url()(Gebruikt in URL's) enwp_kses_post()(Sicherheidshandige HTML-tags mogen worden gebruikt.) - Tijdens interactie met een database moet je vooraf opgestelde SQL-sententies (prepared statements) gebruiken. Vergeet nooit om variabelen rechtstreeks te combineren met SQL-vraagjes. In plaats daarvan moet je de waarden van de variabelen eerst in de vooraf opgestelde SQL-sententies plaatsen.
$wpdb->prepare()Methoden of meer geavanceerde API's, zoals...WP_QueryAls voorbeeld:
global $wpdb;
$user_id = 123;
$safe_query = $wpdb->prepare( “SELECT * FROM {$wpdb->prefix}posts WHERE post_author = %d”, $user_id );
$results = $wpdb->get_results( $safe_query ); Hier%d'Dat is een plaatshalter.'$wpdb->prepare()Deze gegevens worden veilig verwerkt.$user_idVariabelen.
Implementeren van instellingen en beveiligingsopties
Wanneer je configurabele instellingen toevoegt aan een plugin, moet je de WordPress Settings API gebruiken. De API verzorgt automatisch de verificatie van Nonces, de controle van toegangsrechten en het opslaan van instellingen, waardoor de beveiligingsprocedure aanzienlijk wordt vereenvoudigd.
Allereerst gebruiken weregister_setting()Registreer een groep instellingsopties en gebruik deze daarna.add_settings_section()和add_settings_field()Voeg een veld toe in de eerder gecreëerde callback-functie van het beheermenu.myfp_settings_pageDeze methode wordt geroepen uit...settings_fields( ‘myfp_settings_group’ )和do_settings_sections( ‘myfp-settings’ )Alle noodzakelijke veiligheidsgegevens en de instellingen voor het registreren worden weergegeven. Dit is handiger dan het alles manueel te verwerken.$_POSTDe gegevens moeten veel veiliger en betrouwbaarder zijn.
Samenvatting
Je hebt de belangrijkste stappen in het ontwikkelen van plugins gezet: van het schrijven van eenvoudige commentaren in het hoofddeel van een plugin, tot het gebruik van acties en filterhaken om te interageren met het kernprogramma van WordPress, en vervolgens het maken van shortcodes en het beheersen van pagina’s. Houd altijd de principie ‘beveiliging eerst’ in gedachten: verifieer, ontsluit en reinig gegevens strikt, en gebruik actief veiligheidsinstrumenten zoals de Settings API die WordPress biedt. Het ontwikkelen van plugins is een proces van voortdurend leren. Door het bestuderen van het kernprogramma, het raadplegen van de officiële documentatie en het deelnemen aan de community, kun je krachtige, veilige en populaire WordPress-plugins bouwen.
Veelgestelde vragen (FAQ)
Is het vereist om PHP perfect te beheersen om plugins te kunnen ontwikkelen?
Ja, een solide basis in PHP is nodig, omdat WordPress zelf is geschreven in PHP. Je moet de PHP-synthese, functies, klassen, namenruimten en andere concepten begrijpen. Daarnaast is een basiskennis van HTML, CSS en JavaScript zeer nuttig voor het ontwikkelen van front-end-functies.
Hoe debug ik mijn plugin-code?
De meest effectieve manier is om de eerder genoemde optie te activeren.WP_DEBUG、WP_DEBUG_LOG和WP_DEBUG_DISPLAYDaarnaast kan het ook worden gebruikt.error_log()De functie schrijft aangepaste debug-informatie in het logbestand, of gebruikt professionele debug-hulpmiddelen zoals Xdebug in combinatie met je code-editor voor stap-voor-stap-debugging.
Hoe moet ik taalvertalingen toevoegen aan mijn plugin?
Allereerst moet de instelling in de commentaren bovenin het plugin worden gezet.Text Domain(zoals ‘my-first-plugin’) enDomain Path(Bijvoorbeeld ‘/languages’). Vervolgens moet, op alle plekken in de code waar strings moeten worden vertaald, een vergelijkbare methode worden gebruikt.__( ‘Hello World’, ‘my-first-plugin’ )或esc_html_e( ‘Settings’, ‘my-first-plugin’ )Vertaalmachine voor tekst. Ten slotte wordt de vertaald tekst gebruikt om met tools als Poedit een eindproduct te genereren..potTemplatebestanden, waarmee verschillende talen kunnen worden gecreëerd..po和.moVertaal de tekst en plaatst deze in de aangegeven locatie./languagesCatalogus.
Hoe publiceer je een ontwikkeld plugin in de officiële WordPress-directory?
Je moet naar de officiële plug-in directory van WordPress gaan om je plug-in in te dienen. Voordat je dit doet, moet je ervoor zorgen dat de code voldoet aan de coderingsnormen van WordPress, dat deze voorzien is van uitgebreide documentatie en opmerkingen, en dat er geen auteursrechtsproblemen zijn met externe commerciële bibliotheken. Nadat je je plug-in hebt ingediend, wordt deze beoordeeld. Als deze wordt goedgekeurd, kunnen gebruikers over de hele wereld je plug-in 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.
- Ultimatum Gids voor Websitebouw: Het volledige proces van concept tot livegoed en een analyse van de belangrijkste technieken
- Waarom wordt WordPress gekozen als de favoriete platform voor het bouwen van websites?
- WordPress Basisgids: Bouw je eerste professionele website vanuit het niets
- Alles-in-één oplossing voor websiteontwikkeling: een volledig handboek voor de implementatie, van het begin tot de livegang van de website
- Voordracht: Waarom kiezen voor WordPress voor ontwikkeling?