Waarom zou je willen leren hoe je plugins voor WordPress ontwikkelt?
WordPress is het meest populaire content management systeem ter wereld, en de grote schaalbaarheid van WordPress is voornamelijk te danken aan het plugin-systeem. Leren hoe je plugins ontwikkelt betekent dat je niet langer bent beperkt door de mogelijkheden van bestaande plugins. Je kunt op maat gemaakte oplossingen creëren die voldoen aan de behoeften van je projecten – ofwel unieke functionaliteiten bieden aan klanten, of uitstekende ideeën omzetten in producten die je deelt met de community. Het beheersen van deze techniek kan je ontwikkelingsefficiëntie en marktconcurrentie aanzienlijk verbeteren.
Een standaard WordPress-plugin is een apart PHP-bestand of een map met meerdere bestanden, die met het kernprogramma van WordPress interactie opneemt via een reeks vooraf bepaalde interfaces. Het ontwikkelingsproces draait voornamelijk om het begrijpen van de werking van WordPress.HooksHet systeem voldoet aan de vereiste coderingstandaarden en beveiligingspraktijken.
Maak je eerste plugin
Voordat je begint met schrijven van code, heb je een lokale ontwikkelomgeving nodig. XAMPP, MAMP of Local by Flywheel worden hierdoor aanbevolen. Zodra de omgeving klaar is, kun je verder met je ontwikkeling.wp-content/pluginsJe hebt je eerste plugin gecreëerd in de map.
Aanbevolen leesmateriaal Van nul af WordPress-pluginontwikkeling meesteren: een volledig handboek met praktische oefeningen。
Maak een hoofdpluginbestand.
Elk plugin moet een hoofdPHP-bestand hebben, waarin de standaardcommentaren met informatie over het plugin worden opgenomen. Dit bestand vormt de ingangspoort van het plugin en heet meestal dezelfde naam als de map waarin het plugin zich bevindt. Bijvoorbeeld, als je een plugin met de naam ‘my-plugin’ maakt…my-first-pluginDe inhoud van de map, en daarin een bestand met dezelfde naam maken.my-first-plugin.phpHet document.
De commentaren aan het begin van een bestand zijn van belangrijke betekenis; WordPress gebruikt deze om de basisinformatie over een plugin te herkennen.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习插件开发的简单示例插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Na het opslaan van het bestand, log in je in bij het WordPress-administratiepaneel en ga naar de pagina “Plug-ins”. Hier zie je de nieuwe plugin in de lijst met beschikbare plug-ins; je kunt deze vervolgens activeren. Op dit moment beschikt de plugin nog over geen functies.
De eerste functie wordt toegevoegd.
Laten we nu een simpel functie toevoegen aan deze plugin: automatisch toevoegen van een aangepaste tekst aan het eind van de artikelinhoud. Hiervoor hebben we de mogelijkheden van WordPress nodig.the_contentFilter-haken.
In het hoofdbestand van het plugin, onder de commentaren, voeg de volgende code toe:
Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: van nul tot een bouwen van je eerste functionaliteitsplugin。
// 在文章内容后添加自定义文本
function myfp_add_footer_text($content) {
// 确保只在主循环的单篇文章中显示
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>Dank je voor het lezen! Deze tekst is ondersteund door “Mijn eerste plugin”.</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到‘the_content’过滤器
add_filter('the_content', 'myfp_add_footer_text'); Deze code definieert een functie.myfp_add_footer_textHet ontvangt de inhoud van de artikelen.$contentAls parameter wordt dit gebruikt. Binnen de functie worden condities gecontroleerd om te zorgen dat deze actie alleen op de specifieke artikelpagina en alleen in de hoofdloop van de hoofdquery wordt uitgevoerd. Vervolgens wordt een segment aangepaste HTML-text samengevoegd. Ten slotte wordt dit gebruikt…add_filter()De functie maakt deze zelfgemaakte functie beschikbaar in WordPress.the_contentOp de filter. Nadat je het plugin hebt aktiveerd, kun je bij het bekijken van een artikel op de onderste helft van de inhoud de toegevoegde tekst zien.
De kern van de zaak: Hooks en API's
Het kernpunt van het ontwikkelen van WordPress-plug-ins is om het systeem met hooks en de uitgebreide API te begrijpen en ervoor te zorgen dat deze op efficiënte en veilige manier worden gebruikt. Dit vormt de brug voor een veilige en standaardiserde communicatie tussen de plug-in en het core-systeem van WordPress.
Verstehen van acties en filter-haken
Er zijn twee belangrijke types hookjes: Action-hookjes en Filter-hookjes. Action-hookjes bieden je de mogelijkheid om op bepaalde tijdstippen eigen code uit te voeren.wp_footerDe actie wordt uitgevoerd voordat de tag aan het onderste deel van de pagina wordt weergegeven. Je kunt dit gebruiken om...add_action('wp_footer', 'your_function')Voeg hier de tracking-code of uw eigen HTML-code toe.
De filter-haken bieden je de mogelijkheid om gegevens te “bewerken”. Ze nemen de gegevens op, verwerken deze met behulp van je functies en geven ze daarna weer terug. Het voorbeeld van het toevoegen van voetertekst bovenaan de pagina is een typisch gebruik van een filter. Een ander veel voorkomend voorbeeld is…excerpt_lengthFilteren wordt gebruikt om de lengte van de samenvatting van een artikel te bewerken.
// 修改摘要长度为20个单词
function myfp_custom_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'myfp_custom_excerpt_length'); Het gebruik van de WordPress Database API
Plugins hebben vaak de behoef om gegevens op te slaan en te ophalen. WordPress biedt hierbij verschillende mogelijkheden voor.wpdbKlassen worden gebruikt om veilig te interageren met de database. Voor eenvoudige gegevens in de vorm van sleutel-waarde-paren wordt het gebruik van de Options-API sterk aanbevolen.
Als voorbeeld: om gebruikers de mogelijkheid te geven om de voetnotetekst die we eerder hebben toegevoegd aan te passen, kunnen we een optie maken.
Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress plugins: van het begin tot het bouwen van professionele uitbreidingen。
// 1. 创建可配置的页脚文本
function myfp_add_footer_text_v2($content) {
if (is_single() && in_the_loop() && is_main_query()) {
// 从数据库获取选项值,如果不存在则使用默认值
$footer_text = get_option('myfp_footer_text', '感谢阅读!本文由“我的第一个插件”提供支持。');
$custom_text = '<p><em>'`. esc_html($footer_text)`.'</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter('the_content', 'myfp_add_footer_text_v2'); Nu kan de tekst worden gebruikt.get_option()De functie leest de gegevens uit de database. Daarna hebben we een beheerpagina nodig, zodat gebruikers deze waarde kunnen wijzigen.
Een pagina voor plug-inbeheer maken
Om het plugin professioneler en gebruiksvriendelijker te maken, is het nodig om een instellingenpagina toe te voegen. Dit wordt meestal gerealiseerd via de API van het WordPress-beheermenu.
Voeg een beheermenu en ondersteunende pagina's toe.
We kunnen een aparte, bovenste menukaart toevoegen aan het plugin, of het als submenu onder “Instellingen” of “Tools” plaatsen. Hier hebben we het toegevoegd onder het “Instellingen”-menu.
Allereerst gebruiken weadd_action()Een functie mounten op...admin_menu‘Hook’: Voeg een menu-item toe in deze functie.
// 添加管理菜单
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 所需权限
'my-first-plugin', // 菜单slug
'myfp_options_page_html' // 用于渲染页面的回调函数
);
}
add_action('admin_menu', 'myfp_add_admin_menu'); add_options_page()De functie zal een subpagina creëren onder het menu “Instellingen”. Wanneer een gebruiker op dit menu klikt, zal WordPress de door ons opgegeven callback-functie oproepen.myfp_options_page_htmlDe inhoud van de pagina wordt niet weergegeven. Om de inhoud van de pagina te zien, moet u de broncode of de toegang tot de pagina hebben.
Construct een formulier voor de instellingenpagina
Vervolgens wordt een callback-functie gedefinieerd om een simpel instellingenformulier te renderen. Dit formulier zal worden verstuurd naar…options.phpDit is de standaardmanier waarop WordPress instellingen verwerkt.
// 渲染设置页面
function myfp_options_page_html() {
// 检查用户权限
if (!current_user_can('manage_options')) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form action="/nl/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 输出必要的安全字段
settings_fields('myfp_settings');
// 输出设置章节和字段
do_settings_sections('my-first-plugin');
// 提交按钮
submit_button('保存设置');
?>
<input type="hidden" name="trp-form-language" value="nl"/></form>
</div>
<?php
} Registratie-instellingen, onderdelen en velden
Een formulier alleen is niet genoeg; we moeten het ook gebruiken.register_setting(), add_settings_section()和add_settings_field()Functies zoals deze worden gebruikt om WordPress te vertellen welke instellingen beschikbaar zijn.
// 初始化插件设置
function myfp_settings_init() {
// 注册一个设置项‘myfp_settings’,它包含一个字段‘myfp_footer_text’
register_setting('myfp_settings', 'myfp_footer_text');
// 在页面‘my-first-plugin’上添加一个设置章节
add_settings_section(
'myfp_section',
'页脚文本设置',
null, // 章节描述回调函数,这里不需要
'my-first-plugin'
);
// 在上述章节中添加一个字段
add_settings_field(
'myfp_field_footer_text',
'自定义页脚文本',
'myfp_field_footer_text_html', // 渲染字段HTML的回调函数
'my-first-plugin',
'myfp_section',
['label_for' => 'myfp_footer_text']
);
}
add_action('admin_init', 'myfp_settings_init');
// 渲染文本输入字段
function myfp_field_footer_text_html() {
// 获取数据库中保存的值
$value = get_option('myfp_footer_text');
?>
<input type="text" id="myfp_footer_text" name="myfp_footer_text" value="<?php echo esc_attr($value); ?>" class="regular-text">
<p class="description">Deze tekst zal worden weergegeven aan het eind van elke artikel.</p>
<?php
} Nu je de WordPress-beheeromgeving hebt bijgewerkt, zie je in het menu “Instellingen” de optie “Mijn plug-ininstellingen”. Op deze pagina kun je het aangepaste voetertekstverhaal bewerken en opslaan; de inhoud van de artikelen op de frontpage wordt hierdoor automatisch bijgewerkt.
Samenvatting
Deze gids leidt je door de kernstappen van het ontwikkelen van WordPress-plug-ins: van het maken van een basisplug-inbestand met standaardheaderinformatie, tot het toevoegen van functionaliteiten aan WordPress met behulp van action- en filterhooks, het opslaan van gegevens met de Options API, en uiteindelijk het creeren van een volledig administratief interface. Het hele proces reflecteert de modulaire en hookgebaseerde filosofie van WordPress-ontwikkeling. Nadat je deze basiskennis hebt vergaard, kun je verder ontdekken hoe je aangepaste artikeltypen, shortcodes, REST API-integraties, AJAX-behandelingen en de internationalisering van plug-ins kunt realiseren. Vergeet niet dat een goede codestructuur, veilige gegevensverwerking en een duidelijk gebruikersinterface essentieel zijn voor het maken van uitstekende plug-ins.
Veelgestelde vragen (FAQ)
Welke voorwaartse kennis is vereist om plugins te ontwikkelen?
Je moet basiskennis hebben van de PHP-programmeringstaal, inclusief concepten als variabelen, functies, conditionele bewerkingen en cycli. Daarnaast moet je een begrip hebben van HTML en CSS, zodat je front-end-output en -stijlen kunt bepalen. Het is handig om ook bekend te zijn met de basisoperaties van MySQL, hoewel de API van WordPress de meeste database-interacties al heeft afgehandeld.
Hoe debug je een plugin die je aan het ontwikkelen bent?
De meest effectieve manier is om de debug-modus van WordPress te activeren.wp-config.phpIn het bestand wordt…WP_DEBUGEen constante wordt gedefinieerd als een waarde die niet kan worden veranderd.trueDit zal alle PHP-fouten, waarschuwingen en berichtgeving op het scherm weergeven. Daarnaast is het ook mogelijk om…error_log()De functie schrijft de fouteninformatie op in het foutenlog van de server, of gebruikt de Console- en Network-panelen van de browser-developer-tools voor front-end-foutopsporing.
Hoe kunnen plugins worden uitgerust met multilingual ondersteuning?
WordPress gebruikt de processen van “internationalisering (i18n)” en “localisering (l10n)” om meerdere talen te ondersteunen. In het code van plugins moet alle tekst die moet worden vertaald worden gemarkeerd met speciale tags of aanduidingen.__()或_e()Deze tekst bevat geen duidelijke instructies of code die kunnen worden vertaald. Er zijn ook geen specifieke termen of concepten genoemd die kunnen worden vertaald naar een andere taal. Als u een specifieke tekst wilt hebben die uit een andere taal wordt vertaald, kunt u deze tekst naar mij sturen, en ik zal deze vervolgens voor u vertalen..potTemplatebestanden, waarmee verschillende talen (bijvoorbeeld...) kunnen worden gecreëerd.zh_CN.poVervolgens declareer je tekst domein in het “Text Domain”-deel aan het begin van het hoofdbestand van het plugin, en gebruik dit bij de initialisatie.load_plugin_textdomain()Function loading.
Hoe publiceer je een ontwikkeld plugin in de officiële catalogus?
Allereerst moet je ervoor zorgen dat je plugin volledig voldoet aan de officiële coderingstandaarden van WordPress, de privacyregels en de vereisten voor GPL-compatibiliteit. Daarna moet je op WordPress.org een SVN-repository aanvragen. Stuur je plugincode (inclusief de hoofdbestanden, resourcebestanden en vertaalmappen) naar dit SVN-repository./trunkInhoudsopgave: Nieuwe versies worden gepubliceerd met behulp van SVN-taggen. De officiële inhoudsopgave wordt automatisch gesynctroceerd vanuit je SVN-repository en wordt vervolgens door een menselijke beoordeling goedgekeurd voordat deze wordt weergegeven.
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-pluginontwikkelingsgids: van nul tot één: maak je eerste eigen plugin
- Werken als WordPress-pluginontwikkelaar: een volledig handboek van nul tot één
- Volledig handboek voor het ontwikkelen van WordPress plugins: van het begin tot de volmaakte beheersing van professionele uitbreidingen
- WordPress-pluginontwikkeling: van het begin tot de volmaaktheid: bouw je eerste eigen plugin
- Van nul naar één: een volledig handboek voor het stappen voor stappen ontwikkelen van je eerste WordPress-plugin