In der weiten Welt des Internets hat WordPress mit seiner hohen Erweiterbarkeit einen großen Anteil am Markt der Content-Management-Systeme erobert. Der Kern, der WordPress diese unbegrenzte Erweiterbarkeit verleiht, sind die Plugins. Mithilfe der WordPress-Plugin-Entwicklung kannst du deiner Website jede Funktion hinzufügen, die dir in den Sinn kommt. In diesem Artikel führe ich dich Schritt für Schritt an, wie du dein erstes WordPress-Plugin von Grund auf erstellst und lernst, seine grundlegende Struktur sowie den Entwicklungsprozess genau zu verstehen.
Grundlagen von WordPress-Plugins und Aufbau einer Entwicklungsumgebung
Bevor Sie mit dem Kodieren beginnen, ist es von entscheidender Bedeutung, das Wesen von WordPress-Plugins zu verstehen und eine geeignete Entwicklungsumgebung einzurichten. Ein Plugin besteht im Grunde aus einem oder mehreren PHP-Dateien, die den WordPress-Standards folgen und über spezifische Mechanismen mit dem WordPress-System interagieren.钩子(Hooks) Interagieren mit dem Kernsystem.
Grundlegende Definition eines Plugins
Jeder Plugin muss eine eindeutige Hauptdatei haben, in deren Anfang die Plugin-Informationen in einer bestimmten Formatierung als Kommentar angegeben werden. Diese Kommentare dienen WordPress als Grundlage, um auf der Plugin-Verwaltungsebene Metadaten wie den Plugin-Namen, die Beschreibung, die Version usw. zu erkennen und anzuzeigen.
Empfohlene Lektüre Entdecken Sie die Welt der Plugin-Entwicklung: Erstellen Sie Ihr erstes Erweiterungspaket von Grund auf.。
Konfiguration der lokalen Entwicklungsumgebung
Um eine effiziente und sichere Entwicklung durchzuführen, wird die Nutzung einer lokalen Serverumgebung dringend empfohlen. Sie können Tools wie XAMPP, MAMP, Local by Flywheel oder Docker wählen. Die grundlegenden Anforderungen sind die Installation von PHP (die Version muss mit Ihrem Zielserver kompatibel sein), MySQL/MariaDB sowie Apache/Nginx. Anschließend sollten Sie die neuesten WordPress-Quelldateien herunterladen und die Installation durchführen.
Erstellen Sie Ihr erstes Plugin: Eine Begrüßungstoolbox
Jetzt lassen Sie uns gemeinsam einen einfachen Plugin erstellen. Die Funktion dieses Plugins besteht darin, am Ende des Artikelinhalts auf der Website automatisch einen benutzerdefinierten Gruß hinzuzufügen.
Zunächst einmal, in WordPress… wp-content/plugins Im Verzeichnis erstellen Sie ein neues Verzeichnis mit dem Namen „…“ (füllen Sie den Namen bitte aus). my-first-greeting-pluginDann erstellen Sie innerhalb dieses Ordners die Haupt-PHP-Datei; sie kann beliebig benannt werden. my-first-greeting-plugin.php。
Plugin-Header-Informationen-Deklaration
Öffnen Sie die Hauptdatei und geben Sie den folgenden Code ein, um das Plugin zu definieren:
<?php
/**
* Plugin Name: 我的第一个问候语插件
* Plugin URI: https://yourwebsite.com/my-first-greeting-plugin
* Description: 这是一个练习用的插件,用于在文章末尾添加问候语。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-greeting-plugin
*/ Nachdem Sie die Datei gespeichert haben, gehen Sie zur “Plugins”-Seite im WordPress-Backend. Dort sollten Sie das neue Plugin in der Liste der Plugins sehen und es aktivieren können. Natürlich verfügt es derzeit noch über keine Funktionen.
Empfohlene Lektüre 10 wichtige Tipps zur Leistungsoptimierung von WooCommerce-E-Commerce-Websites und praktische Anleitungen。
Mit Hilfe von „Hooken“ können Kernfunktionen hinzugefügt werden.
Der Betrieb von WordPress hängt stark vom sogenannten “Hook”-Mechanismus ab, der in verschiedene Kategorien unterteilt wird…动作钩子(ACTION Hooks) und过滤器钩子(Filter Hooks): Um Text nach dem Inhalt eines Artikels hinzuzufügen, müssen wir Filter Hooks verwenden. the_content Dieser Filter-Hook.
Unter den Kommentaren am Anfang der Hauptdatei fügen Sie die folgenden Funktionen und Hooks hinzu:
// 定义向文章内容添加问候语的函数
function mfgp_add_greeting_to_content( $content ) {
// 确保只在主循环的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$greeting = '<p style="color:#666; font-style:italic;">Vielen Dank, dass Sie diesen Artikel gelesen haben! Ich wünsche Ihnen einen schönen Tag!</p>';
$content .= $greeting;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器钩子上
add_filter( 'the_content', 'mfgp_add_greeting_to_content' ); Nachdem Sie die Datei gespeichert und das Plugin aktiviert haben, öffnen Sie irgendeinen Artikel auf der Website und scrollen Sie bis zum Ende. Dort sollten Sie die hinzugefügte Begrüßung sehen. Mit diesem einfachen Beispiel haben Sie bereits die wichtigsten Konzepte der Plugin-Entwicklung umgesetzt: Das Deklarieren des Plugins, das Schreiben von Funktionen sowie die Verwendung dieser Funktionen, um die gewünschten Funktionen der Website zu erweitern.add_filteroderadd_actionMontieren Sie die Funktion an den richtigen Hook.
Erweiterungen der Plugin-Funktionen: Hinzufügung einer Verwaltungsseiten für Einstellungen
Ein ausgereiftes Plugin ermöglicht es in der Regel den Benutzern, die Einstellungen im Hintergrund zu ändern. Als Nächstes fügen wir dem Grußwort-Plugin eine einfache Einstellungsseite hinzu, damit Administratoren den angezeigten Text selbst definieren können.
Erstellen Sie eine Menüeinträge für die Verwaltung.
Zunächst müssen wiradd_actionDer Hook ruft eine Funktion auf, und diese Funktion wird dann verwendet. add_options_page Die Funktion fügt eine Unterseite zum “Einstellungen”-Menü im WordPress-Backend hinzu.
Fahren Sie im Hauptfile mit der Hinzufügung des folgenden Codes fort:
Empfohlene Lektüre Von Null auf Eins: Eine vollständige Anleitung zur Entwicklung von WordPress-Plugins mit praktischen Übungen。
// 添加设置菜单
function mfgp_add_admin_menu() {
add_options_page(
'问候语插件设置', // 页面标题
'自定义问候语', // 菜单标题
'manage_options', // 权限要求(管理员)
'my-greeting-plugin', // 菜单 Slug
'mfgp_settings_page_html' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'mfgp_add_admin_menu' ); Erstellung der Einstellungsseite sowie der Logik zum Speichern der Daten
Jetzt müssen wir den obigen Callback-Funktion definieren. mfgp_settings_page_html Wir müssen die HTML-Formulare der Einstellungsseite rendern und die Speicherung der Formulardaten verarbeiten. WordPress bietet eine Einstellungs-API an, um diesen Prozess zu vereinfachen, aber um den Ablauf klarer zu verstehen, verwenden wir zunächst die grundlegenden Methoden.
// 定义设置页面的 HTML 结构
function mfgp_settings_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交(非设置API方式)
if ( isset( $_POST['mfgp_greeting_text'] ) ) {
// 验证 Nonce 确保请求来源安全
check_admin_referer( 'mfgp_save_settings' );
// 清理并保存输入的数据
$greeting_text = sanitize_textarea_field( $_POST['mfgp_greeting_text'] );
update_option( 'mfgp_custom_greeting', $greeting_text );
echo '<div class="notice notice-success is-dismissible"><p>Die Einstellungen wurden gespeichert!</p></div>';
}
// 获取已保存的问候语
$saved_greeting = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
?>
<div class="wrap">
<h1>\n</h1>
<form method="post" action="">
<?php wp_nonce_field( 'mfgp_save_settings' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="mfgp_greeting_text">Eine benutzerdefinierte Begrüßungsnachricht</label></th>
<td>
<textarea name="mfgp_greeting_text" id="mfgp_greeting_text" rows="5" cols="50" class="large-text"><?php echo esc_textarea( $saved_greeting ); ?></textarea>
<p class="description">Dieser Text wird am Ende jedes Artikels angezeigt.</p>
</td>
</tr>
</table>
<input type="hidden" name="trp-form-language" value="de"/></form>
</div>
<?php
} Aktualisieren der Frontend-Ausgabe-Funktion
Zum Schluss müssen wir die vorherige Frontend-Ausgabe-Funktion ändern, sodass sie die Optionen aus der Datenbank verwendet.get_optionDie Begrüßung wird aus einer Datei gelesen, anstatt aus fest codierten Texten verwendet.
function mfgp_add_greeting_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
// 从数据库选项中获取问候语,如果没有则使用默认值
$greeting_text = get_option( 'mfgp_custom_greeting', '感谢您阅读本文!祝你拥有美好的一天!' );
if ( ! empty( $greeting_text ) ) {
$greeting = '<p style="color:#666; font-style:italic;">'`. esc_html($greeting_text)`.'</p>';
$content .= $greeting;
}
}
return $content;
} Jetzt können Administratoren die angezeigten Texte auf der Seite “Einstellungen” -> “Anpassbare Begrüßungen” frei ändern, und die Anzeige auf der Benutzeroberfläche wird sofort aktualisiert.
Vorbereitungen für die Veröffentlichung des Plugins: Internationalisierung und Sicherheitsstärkung
Bevor Sie Plugins mit anderen teilen oder sie in den offiziellen Verzeichnissen veröffentlichen, gibt es noch einige wichtige Abschlussarbeiten zu erledigen – hauptsächlich im Bereich der Internationalisierung und der Sicherheitsstärkung.
Implementierung der Internationalisierung von Texten
Internationalisierung (i18n) ermöglicht es Ihnen, Ihre Plugins in andere Sprachen zu übersetzen. Sie müssen alle für die Benutzer bestimmten Zeichenketten mit speziellen Funktionen umschließen. Ändern Sie die Zeichenketten in unserem Plugin:
1. In den Kommentaren am Anfang des Plugins haben wir bereits alles definiert. Text Domain。
2. Verwenden Sie dies im Code. () oder esc_html() Eine Funktion umschließt einen String. Beispiel:
// 在设置页面函数中
$greeting_text = get_option( 'mfgp_custom_greeting', __( ‘感谢您阅读本文!祝你拥有美好的一天!’, ‘my-first-greeting-plugin’ ) );
echo ‘<h1>’ . esc_html__( ‘问候语插件设置’, ‘my-first-greeting-plugin’ ) . ‘</h1>’\n’;
// In der Frontend-Ausgabe-Funktion (Hinweis: Die Frontend-Ausgabe erfordert normalerweise keine Übersetzung, es sei denn, dies wird vom Thema oder vom Benutzer festgelegt).
// Aber wenn die Begrüßung selbst mehrsprachig sein muss, kann eine komplexere Logik erforderlich sein. 3. Verwenden Sie Werkzeuge wie Poedit zur Erstellung. .pot Template-Dateien – Übersetzer können darauf basierend neue Inhalte erstellen. .po und .mo Dokumente.
Stärkung der Sicherheitsmaßnahmen
Sicherheit ist von entscheidender Bedeutung. Wir haben bereits einige Sicherheitsfunktionen eingesetzt, wie…sanitize_textarea_field、esc_html、esc_textareaundwp_nonce_fieldDarüber hinaus ist es auch wichtig zu beachten:
* 权限检查:在管理页面函数开始处使用 current_user_can Eine Überprüfung durchführen.
* 数据验证与清理:对所有用户输入(如 $_POST, $_GET)进行验证(是否符合预期格式)和清理(移除非法字符)。
* 非竞态条件更新:对于重要的选项,考虑使用 wp_options Beim Erstellen von Tabellen ist es sicherer, die Settings-API zu verwenden, da diese integrierte Nicht-Wettbewerbsmechanismen („Nonces“) sowie Berechtigungsüberprüfungen bietet.
Zusammenfassungen
Mit dieser Anleitung haben wir die gesamte Prozesskette vom Erstellen bis zur Veröffentlichung eines voll funktionsfähigen WordPress-Plugins durchlaufen. Wir begannen mit einem Verständnis der Grundlagen von Plugins und erstellten die Hauptdatei des Plugins, die standardmäßige Kopfinformationen enthält. Anschließend haben wir das Kernmechanismus der „Hooks“ in WordPress anhand einer einfachen Begrüßungsfunktion praktiziert. Danach fügten wir der Plugin-Website eine Benutzeroberfläche für die Konfiguration hinzu, um eine Anpassungsfähigkeit für die Nutzer zu ermöglichen. Abschließend haben wir die wichtigen Schritte vor der Veröffentlichung besprochen – insbesondere die Internationalisierung und die Stärkung der Sicherheit. Jeder Schritt beinhaltete wichtige WordPress-Funktionen und bewährte Vorgehensweisen. Nachdem Sie diese Grundkenntnisse erlernt haben, können Sie versuchen, komplexere und kreativere Plugins zu entwickeln und so zur WordPress-Community weltweit beizutragen.
FAQ Häufig gestellte Fragen
Welche Vorkenntnisse sind für die Entwicklung von WordPress-Plugins erforderlich?
Sie sollten über grundlegende PHP-Programmierkenntnisse verfügen, HTML und CSS verstehen sowie die grundlegenden Funktionen von WordPress kennen (z. B. die Erstellung von Artikeln, Seiten und Menüs). Eine Vertrautheit mit objektorientiertem Programmieren (OOP) ist nicht zwingend erforderlich, aber sie würde die Entwicklung großer Plugins erheblich erleichtern.
Warum wird mein Plugin nach der Aktivierung nicht im Hintergrundmenü angezeigt?
Die häufigste Ursache sind Berechtigungsprobleme. Bitte überprüfen Sie, wie Sie die Funktion aufrufen.add_options_pageBei der Verwendung einer ähnlichen Funktion, wurde der zweite Parameter („capability“) korrekt eingestellt? ‘manage_options’Darüber hinaus stellen Sie sicher, dass Ihre Funktion korrekt übergeben wurde.add_action( ‘admin_menu’, ...)Der Hook wurde erfolgreich eingebunden, und es gab keine Syntaxfehler, die dazu geführt hätten, dass die Funktion nicht ausgeführt wurde. Du kannst dies am Anfang des Codes vermerken.error_logFunktionen werden verwendet, um Fehler zu beheben („Debugging“).
Wie debugge ich mein WordPress-Plugin?
Zuerst stellen Sie sicher, dass in Ihrer… wp-config.php In der Datei wurde der WordPress-Debugging-Modus aktiviert: define( ‘WP_DEBUG’, true ); und define( ‘WP_DEBUG_LOG’, true );Auf diese Weise werden die Fehlermeldungen aufgezeichnet. /wp-content/debug.log Die Datei befindet sich im angegebenen Ort. Zweitens kann man die Frontend-Entwicklung mithilfe der “Konsole”- und “Netzwerk”-Tabellen der Browser-Entwicklungstools durchführen. Bei komplexer Logik ist es sinnvoll, zusätzliche Hilfsmittel oder Methoden einzusetzen.error_log( print_r( $variable, true ) );Es ist eine gängige Methode, die Werte von Variablen in die Protokolle (Logs) auszugeben.
Wie ist mein Plugin mit anderen Plugins oder Themes kompatibel?
Um die Kompatibilität so weit wie möglich zu gewährleisten, sollte Ihr Plugin: 1) alle Funktionen, Klassen, Variablen und Optionen mit einem eindeutigen Präfix benennen (wie wir es hier verwenden).mfgp_1) Vermeiden Sie Namenskonflikte.
2) Verwenden Sie möglichst eindeutige Selektor-Klassennamen, wenn Sie Änderungen am Frontend oder Backend vornehmen.
3) Stellen Sie nach Möglichkeit Filter-Hooks bereit.apply_filtersSie erlauben anderen Entwicklern, das Verhalten Ihres Plugins zu ändern. 4) Vermeiden Sie es, direkt auf die Tabellen oder Dateien der WordPress-Core-Datenbank zuzugreifen und diese zu ändern.
Was kommt als Nächstes, was kommt als Nächstes?
Erweiterte Lektüre und praktische Kenntnisse
Die folgenden Artikel stehen im Zusammenhang mit dem Thema dieses Artikels und eignen sich für eine vertiefte Lektüre. Oft ist es besser, mit dem Artikel zu beginnen, der Ihrem aktuellen Problem am nächsten kommt, und dann nach und nach die umliegenden Themen zu behandeln.
- Warum wird WordPress als bevorzugte Plattform für Websites gewählt?
- Detaillierte Anleitung zur Konfiguration eines WordPress-Multisite-Netzwerks
- Einfach professionelle Webseiten erstellen: Ein umfassender Leitfaden von der Grundlagenkenntnis bis zur Meisterschaft mit WordPress
- WooCommerce-Handbuch: Von Grund auf die Erstellung einer leistungsstarken WordPress-E-Commerce-Website
- Praktischer Leitfaden für SEO-Optimierung im Jahr 2026: Eine systematische Strategie von der Grundlagenkenntnis bis zur Meisterschaft