Warum sollte man sich für die Entwicklung von WordPress-Plugins entscheiden?
Als weltweit beliebtestes Content-Management-System verdankt WordPress seine starke Erweiterbarkeit in hohem Maße seiner Plugin-Architektur. Die Entwicklung eigener Plugins bedeutet, dass Sie nicht mehr auf die Funktionen vorhandener Plugins beschränkt sind und die spezifischen Anforderungen Ihrer Website oder Ihrer Kunden genau erfüllen können. Egal, ob es darum geht, einen einfachen Shortcode hinzuzufügen oder ein komplexes Verwaltungspanel zu erstellen – Plugins ermöglichen es Ihnen, Ihre Funktionalität von dem Design Ihrer Website (dem sogenannten „Theme“) zu trennen, sodass die Funktionen auch bei Updates des Themes unbeeinträchtigt bleiben.
Aus Sicht des Lernens ist das Verständnis der Plugin-Entwicklung der unvermeidliche Weg, um tiefer in das Herzstück von WordPress einzudringen. Dadurch lernst du zwei grundlegende Konzepte kennen: Action Hooks und Filter Hooks, die die Basis für die Modularität und Erweiterbarkeit von WordPress bilden. Die Beherrschung der Plugin-Entwicklung verbessert nicht nur deine technischen Fähigkeiten, sondern öffnet dir auch neue berufliche Möglichkeiten und ermöglicht es dir sogar, verkaufbare digitale Produkte zu entwickeln.
Vorbereitungen vor der Entwicklung
Bevor du die erste Zeile Code schreibst, brauchst du eine geeignete Entwicklungsumgebung. Diese umfasst in der Regel eine lokale Serverumgebung (z. B. Local by Flywheel, XAMPP oder MAMP), einen Code-Editor (z. B. VS Code, PhpStorm) sowie eine Testseite, auf der WordPress installiert ist. Stelle sicher, dass die PHP-Version in deiner Testumgebung mit der in der Online-Produktionsumgebung übereinstimmt, um Kompatibilitätsprobleme zu vermeiden.
Empfohlene Lektüre Erlernen Sie die Kerntechniken von WordPress: Ein vollständiger praktischer Leitfaden von der Einrichtung bis zur Optimierung.。
Das Verständnis der grundlegenden Struktur eines Plugins.
Ein sehr einfaches WordPress-Plugin kann aus nur einer PHP-Datei bestehen. Ein gut strukturiertes Plugin enthält jedoch in der Regel mehrere Verzeichnisse und Dateien, um eine bessere Organisation zu gewährleisten. Ein typisches Plugin-Verzeichnis kann die folgende Struktur aufweisen:
– Haupt-Plugin-Datei (z. B.) my-first-plugin.phpDies ist der Einstiegspunkt des Plugins und enthält die Header-Informationen des Plugins.
- includes/ Verzeichnis: Hier werden die Dateien mit den Kernfunktionalitäten bzw. -funktionen abgelegt.
- admin/ Verzeichnis: Enthält den Code, der mit der Backend-Verwaltungsoberfläche zusammenhängt.
- public/ Verzeichnis: Hier werden die Codes für die Webseitenfrontend-Teile gespeichert.
- assets/ Verzeichnis: Hier werden statische Ressourcen wie JavaScript-Dateien, CSS-Dateien und Bilder gespeichert.
- languages/ Verzeichnis: Hier werden die internationalisierten Übersetzungsdateien (.po/.mo) abgelegt.
Notwendige Plugin-Header-Informationen
Jeder WordPress-Plugin muss am Anfang seiner Haupt-PHP-Datei eine standardisierte Kommentarzeile („Plugin-Header“) enthalten. Dies ist entscheidend dafür, dass WordPress das Plugin erkennen kann. Hier ist ein sehr einfaches Beispiel:
<?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
* Domain Path: /languages
*/ Darunter befinden sichPlugin Name Es handelt sich um Pflichtangaben; alle anderen Felder sind optional. Um die Vollständigkeit und Wartbarkeit des Plugins zu gewährleisten, wird jedoch empfohlen, alle relevanten Informationen einzugeben.Text Domain Zur Internationalisierung verwendet.Domain Path Verweist auf den Verzeichnispfad der Sprachdateien.
Erstellen Sie Ihr erstes Plugin: Eine einfache Begrüßungsfunktion
Lassen Sie uns dies anhand eines praktischen Beispiels umsetzen. Wir werden einen Plugin erstellen, das eine anpassbare Begrüßungsnachricht an der Oberseite des Artikelinhalts auf einer Website anzeigt.
Erstellen Sie eine Plugin-Datei und einen entsprechenden Verzeichnis.
Zunächst einmal, im Verzeichnis Ihrer WordPress-Installation: wp-content/plugins/ Im Ordner erstellen Sie einen neuen Ordner mit dem Namen „…“ (füllen Sie den Platzhalter „…“ mit dem gewünschten Namen aus). my-greeting-pluginErstellen Sie dann innerhalb dieses Ordners eine Haupt-PHP-Datei und nennen Sie sie… my-greeting-plugin.phpUnd kopieren Sie die oben genannten Plugin-Header-Informationen hinein.
Empfohlene Lektüre Wie man hochwertige WordPress-Plugins auswählt und entwickelt: Vom Anfänger zum Meister。
\nFunktionen mit Hilfe von Hooks hinzufügen
WordPress läuft über ein Hook-System. Um Informationen vor dem Inhalt eines Artikels hinzuzufügen, müssen wir dieses Hook-System nutzen. the_content Filter-Hooks: Fügen Sie in Ihrer Haupt-Plugin-Datei die folgenden Funktionen sowie die zugehörigen Hook-Aufrufe hinzu:
/**
* 在文章内容前添加问候语
*
* @param string $content 原始的文章内容。
* @return string 修改后的文章内容。
*/
function mgp_add_greeting_to_content( $content ) {
$greeting_text = get_option( 'mgp_greeting_text', '欢迎阅读!' ); // 从数据库获取设置,默认为“欢迎阅读!”
$custom_greeting = '<div class="mgp-greeting"><p><strong>'`. esc_html($greeting_text)`.'</strong></p></div>';
// 仅对主循环中的单篇文章页面生效
if ( is_single() && in_the_loop() && is_main_query() ) {
return $custom_greeting . $content;
}
return $content;
}
// 将函数挂载到 `the_content` 过滤器
add_filter( 'the_content', 'mgp_add_greeting_to_content' ); Dieser Code definiert eine Funktion. mgp_add_greeting_to_contentEs nimmt den Inhalt eines Artikels entgegen und fügt voran einen DIV-Container mit einem Gruß hinzu. add_filter() Funktionen: Wir werden benutzerdefinierte Funktionen in WordPress einbinden. the_content Die Logik innerhalb der Funktion sorgt dafür, dass die Begrüßung nur im Hauptzyklus der einzelnen Artikelseiten auf der Benutzeroberfläche angezeigt wird und keine Auswirkungen auf Seiten, Archivseiten oder Widgets hat.
Erstellen einer einfachen Verwaltungsseiten-Einstellung
Um es den Benutzern zu ermöglichen, den Grußtext selbst zu definieren, müssen wir eine einfache Einstellungsseite hinzufügen. Dafür müssen wir die API des WordPress-Verwaltungsmenüs verwenden. Fügen Sie im Haupt-Plugin-File den folgenden Code hinzu:
/**
* 注册插件设置菜单和页面
*/
function mgp_register_admin_menu() {
add_options_page(
'问候语设置', // 页面标题
'问候语插件设置', // 菜单标题
'manage_options', // 所需权限
'my-greeting-plugin', // 菜单slug
'mgp_render_settings_page' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'mgp_register_admin_menu' );
/**
* 渲染设置页面的内容
*/
function mgp_render_settings_page() {
?>
<div class="wrap">
<h1>Grußsprache-Plugin-Einstellungen</h1>
<form method="post" action="/de/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'mgp_settings_group' ); // 输出设置组和非ce字段
do_settings_sections( 'my-greeting-plugin' ); // 输出设置区域
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="de"/></form>
</div>
<?php
}
/**
* 初始化插件设置
*/
function mgp_initialize_settings() {
// 注册一个设置
register_setting(
'mgp_settings_group', // 设置组名
'mgp_greeting_text', // 选项名,对应数据库中的键
array( // 可选的验证回调函数
'sanitize_callback' => 'sanitize_text_field',
'default' => '欢迎阅读!'
)
);
// 添加一个设置区域
add_settings_section(
'mgp_main_section', // 区域ID
'主要设置', // 区域标题
null, // 区域介绍的回调函数(此处不需要)
'my-greeting-plugin' // 页面slug
);
// 向区域中添加一个字段
add_settings_field(
'mgp_greeting_field', // 字段ID
'问候语文本', // 字段标签
'mgp_greeting_field_callback', // 用于输出字段HTML的回调函数
'my-greeting-plugin', // 页面slug
'mgp_main_section' // 区域ID
);
}
add_action( 'admin_init', 'mgp_initialize_settings' );
/**
* 渲染问候语文本输入字段
*/
function mgp_greeting_field_callback() {
$greeting = get_option( 'mgp_greeting_text', '欢迎阅读!' );
echo '<input type="text" name="mgp_greeting_text" value="' . esc_attr( $greeting ) . '" class="regular-text" />'echo '<p class="description">Dieser Text wird an der Oberseite jedes Artikels auf Ihrer Website angezeigt.</p>';
} Dieser Code erfüllt die folgenden Aufgaben:
1. Verwenden Sie add_action( 'admin_menu', ... ) Unter dem Menü “Einstellungen” wurde eine Unter-Menü-Seite hinzugefügt.
2. Verwenden Sie add_action( 'admin_init', ... ) Initialisierungs-Einstellungen, einschließlich der Option zur Registrierung einer Datenbank, eines Einstellbereichs und eines Eingabefeldes.
3. Es wurden Funktionen definiert, die die Formulare und Felder der Render-Einstellungsebenen verarbeiten.
Jetzt loggen Sie sich in das WordPress-Backend ein und finden Sie unter dem Menü “Einstellungen” die Einstellungen für das “Grußwort-Plugin”. Dort können Sie den Grußtext ändern und die Änderungen sofort in den Artikeln auf der Benutzeroberfläche sehen.
Best Practices und Fortschritte in der Plugin-Entwicklung
Nachdem die grundlegenden Funktionen implementiert wurden, führt die Befolgung von Best Practices dazu, dass dein Plugin professioneller, sicherer und einfacher zu warten ist.
Sicherheit ist die oberste Priorität.
Vertrauen Sie niemals auf die Eingaben der Benutzer. In Plugins sollten alle von außen eingeholten Daten (z. B.…) $_GET、$_POST、$_COOKIE Jede Ausgabe oder Nutzung von Daten (sei es aus einer Datenbankabfrage) muss vorher überprüft, gereinigt oder entschlossen werden (d.h. spezielle Zeichen müssen entsprechend behandelt werden).
Escape-Output: Verwenden Sie esc_html()、esc_attr()、esc_url() und wp_kses_post() Zum Beispiel können Sie die folgenden Funktionen verwenden:
- 清理输入:使用 sanitize_text_field()、sanitize_email()、intval() Zum Beispiel können Sie die folgenden Funktionen verwenden:
– Datenbank-Sicherheit: Verwendung $wpdb Methoden der Klasse zur Abfrage verwenden oder anwenden. prepare() Methoden zur Parameterisierung von Abfragen werden eingesetzt, um SQL-Injection-Angriffe zu verhindern.
– Berechtigungsprüfung: Vor dem Betreten der Verwaltungsseite oder der Ausführung sensibler Operationen wird eine Berechtigungsprüfung durchgeführt. current_user_can() Überprüfen Sie die Benutzerrechte und verwenden Sie diese entsprechend. check_admin_referer() Das Nonce-Feld wird überprüft, um Cross-Site Request Forgery (CSRF) zu verhindern.
Empfohlene Lektüre Erlernen Sie die Kerntechniken von WordPress, um professionelle Websites zu erstellen, die sowohl funktional als auch ästhetisch ansprechend sind.。
Internationalisierung (I18N) umsetzen
Damit dein Plugin von Nutzern auf der ganzen Welt genutzt werden kann, muss es mehrsprachige Übersetzungen unterstützen. Dafür musst du die Übersetzungsfunktionen von WordPress verwenden, um alle für die Benutzer bestimmten Zeichenketten zu formatieren. Ändere die Zeichenketten, die bisher in deinem Code ausgegeben werden.
// 在插件头信息中已定义 Text Domain: my-first-plugin
$greeting_text = get_option( 'mgp_greeting_text', __( '欢迎阅读!', 'my-first-plugin' ) );
// 在管理菜单函数中
add_options_page(
__( '问候语设置', 'my-first-plugin' ),
__( '问候语插件设置', 'my-first-plugin' ),
'manage_options',
'my-greeting-plugin',
'mgp_render_settings_page'
); Danach kannst du Tools wie Poedit verwenden, um aus dem Quellcode der Plugins Zeichenketten zu extrahieren und diese zu generieren. .pot Template-Dateien – Übersetzer können darauf basierend Übersetzungen in verschiedenen Sprachen erstellen. .po und .mo Dateien werden in das Plugin eingefügt. /languages Katalog.
Codeorganisation und Leistungsoptimierung
Mit dem Wachstum der Funktionen der Plugins ist es sinnvoll, den Code in verschiedene Dateien aufzuteilen. Die Verwendung objektorientierter Programmierung (OOP) und Klassen zur Organisation des Codes verbessert die Lesbarkeit und Wiederverwendbarkeit. Bei Ressourcen (CSS, JS) sollte ebenfalls eine entsprechende Struktur angewendet werden. wp_enqueue_style() und wp_enqueue_script() Die Funktion wird im richtigen Hook (z. B.…) ausgeführt. wp_enqueue_scripts oder admin_enqueue_scriptsDie Inhalte werden auf Anfrage geladen und die abhängigen Versionen werden explizit angegeben. Vermeiden Sie direkte, aufwendige Datenbankabfragen in Plugins und überlegen Sie es sich, die Transients-API zu verwenden, um nicht-kritische Daten zu cachen.
Zusammenfassungen
Von der Erstellung einer einfachen PHP-Datei mit den Standard-Plugin-Hauptinformationen über die Integration von Aktionen- und Filter-Hooks in den Lebenszyklus von WordPress bis hin zur Entwicklung einer Benutzeroberfläche sowie der Einhaltung von Sicherheits- und Internationalisierungs-Richtlinien haben Sie den grundlegenden Weg zur Entwicklung eines vollständigen WordPress-Plugins beschritten. Das “Grußwort-Plugin” mag zwar einfach sein, es veranschaulicht jedoch den gesamten Prozess der Plugin-Entwicklung: Funktionalitäten planen, passende Hooks nutzen, Daten verarbeiten und eine Benutzeroberfläche erstellen. Denken Sie daran: Das kontinuierliche Studium der offiziellen Dokumentation, das Analyse des Codes hochwertiger Open-Source-Plugins sowie das regelmäßige praktische Umsetzen sind die besten Wege, um Ihre Fähigkeiten im Plugin-Entwicklungsprozess zu verbessern. Ihr nächstes Plugin könnte vielleicht ein viel komplexeres und interessanteres reales Problem lösen.
FAQ Häufig gestellte Fragen
Wie viele Dateien benötigt mindestens ein WordPress-Plugin?
Ein voll funktionsfähiges WordPress-Plugin benötigt mindestens eine PHP-Datei. Es genügt, wenn an der Spitze dieser Datei die korrekten Plugin-Hauptinformationen enthalten sind (zumindest…) Plugin NameDann kann WordPress das Plugin in der Liste der Backend-Plugins erkennen und aktivieren. Dieses File kann alle Funktionscodes sowie den Code für die Verwaltungsseiten enthalten. Natürlich ist es bei komplexen Plugins aus Sicht der Wartbarkeit empfehlenswert, den Code in mehrere Dateien und Verzeichnisse aufzuteilen.
Wie kann ich verhindern, dass die von mir entwickelte Erweiterung mit anderen Erweiterungen in Konflikt gerät?
Der Schlüssel zur Vermeidung von Konflikten besteht darin, allen Ihren Funktionen, Klassen, Variablen, Optionennamen sowie Aktionen/Filter-Hooks ein eindeutiges Präfix zu geben. Verwenden Sie beispielsweise keine… add_greeting() Solche allgemeinen Funktionsnamen sollten eigentlich durch Namen ersetzt werden, die besser geeignet sind… mgp_add_greeting() Solche Namen (darunter) mgp Es handelt sich dabei um Abkürzungen für Ihre Plugins. Für Optionen, die in der Datenbank gespeichert sind, sollte ebenfalls ein eindeutiger Präfix verwendet werden, zum Beispiel: mgp_greeting_textDies kann die Wahrscheinlichkeit von Namensraumkonflikten so weit wie möglich verringern.
Was sollte man tun, wenn ein Plugin aktiviert oder deaktiviert wird?
Wenn ein Plugin aktiviert wird, müssen in der Regel einige einmalige Aufgaben ausgeführt werden, wie zum Beispiel die Überprüfung der PHP- oder WordPress-Version, die Erstellung von Datenbanktabellen oder die Initialisierung der Standardeinstellungen. Dies kann durch… register_activation_hook() Die Funktion wird ebenfalls verwendet, um dies umzusetzen.register_deactivation_hook() Dient dazu, Aktionen zu definieren, die ausgeführt werden, wenn ein Plugin deaktiviert wird – beispielsweise die Löschung geplanter Aufgaben. Bitte beachten Sie jedoch, dass Deaktivierungshaken in der Regel nicht zum Löschen von Daten verwendet werden. Die Datenbereinigung erfolgt in der Regel durch Entfernungshaken oder wird vom Benutzer manuell durchgeführt.
Wie füge ich einer meiner Plugins eine Einstellungsseite hinzu?
Um einer Erweiterung eine Einstellungsseite hinzuzufügen, werden hauptsächlich zwei WordPress-APIs verwendet: die Menü-API und die Einstellungs-API. Zunächst wird… add_action( 'admin_menu', ... ) Eine Funktion mounten und innerhalb dieser Funktion verwenden. add_menu_page() oder add_submenu_page() Registrieren Sie eine Menüseite – entweder als oberste Ebene oder als untergeordnete Ebene. Anschließend verwenden Sie diese Menüseite entsprechend Ihrer Anforderungen. add_action( 'admin_init', ... ) Eine weitere Funktion mounten und in dieser verwenden. register_setting()、add_settings_section() und add_settings_field() Definieren Sie nun die konkreten Einstellungsoptionen sowie die Felder des Formulars. Abschließend erstellen Sie eine Callback-Funktion, die die HTML-Formulare der Einstellungsseite rendernt.
Welche WordPress-Version muss mein Plugin unterstützen?
Das hängt von deiner Zielgruppe ab. In der Regel wird empfohlen, mit den letzten 3 bis 4 wichtigsten WordPress-Versionen kompatibel zu sein. Du kannst dies in den Meta-Daten des Plugins angeben. Requires at least: Hier werden die minimal erforderlichen Versionen von WordPress aufgeführt. Während der Entwicklung sollte der Einsatz von Funktionen vermieden werden, die nur in den neuesten Versionen von WordPress verfügbar sind – insbesondere solcher, die noch nicht in allgemein verbreiteten Versionen unterstützt werden. function_exists() Durchführen Sie Bedingungsprüfungen, um eine abwärtskompatible Alternative bereitzustellen. Zudem ist es eine gute Methode, die Kompatibilität zu gewährleisten, regelmäßig auf älteren Versionen von WordPress zu testen.
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.
- 10 essentielle WordPress-Sicherheitseinstellungen, um Ihre Website vor Hackerangriffen zu schützen
- 10 praktische WordPress-Plugins, die die Leistung und Sicherheit Ihrer Website erheblich verbessern
- Wie wählt und passt man ein perfektes WordPress-Theme für sich selbst aus?
- Vom Nullpunkt zum Erfolg: Ein umfassender Leitfaden und praktische Tipps für das Erstellen professioneller Websites mit WordPress
- Kompletter Leitfaden zur Steigerung der Sicherheit von WordPress