Warum sollte man mit dem Lernen der WordPress-Entwicklung durch Plugins beginnen?
Eine der Kernphilosophien von WordPress ist seine hohe Erweiterbarkeit, und Plugins sind das Hauptmittel, um diese Eigenschaft umzusetzen – im Gegensatz zu direkten Änderungen an den Themes.functions.phpIm Vergleich zu herkömmlichen Dateien bietet die Erstellung eines separaten Plugins erhebliche Vorteile. Ein Plugin trennt die Funktionalität von der äußeren Gestaltung eines Webseiten-Themes, wodurch die Kernfunktionen auch bei einem Wechsel des Themes erhalten bleiben. Dadurch ist das Plugin strukturierter und wartungsfreundlicher – es erleichtert die Wiederverwendung von Code, die Verwaltung von Versionen sowie den Austausch von Informationen mit anderen Entwicklern.
Aus technischer Sicht ist ein Plugin im Wesentlichen eine oder mehrere PHP-Dateien, die bestimmten WordPress-Standards folgen und in einer bestimmten Struktur im WordPress-System platziert werden./wp-content/plugins/Im Verzeichnis. Wenn WordPress initialisiert wird, scannt es dieses Verzeichnis und lädt den Code aller aktiven Plugins. Das bedeutet, dass Sie mithilfe von Plugins nahezu unbegrenzt jeden Aspekt von WordPress ändern oder erweitern können – von der Hinzufügung eines einfachen Shortcodes bis zur Erstellung eines komplexen Verwaltungspanels.
Erstellen Sie die Grundstruktur für Ihr erstes Plugin.
Der erste Schritt bei der Erstellung eines WordPress-Plugins besteht darin, die grundlegende Dateistruktur aufzubauen. Obwohl ein Plugin auch aus nur einer Datei bestehen kann, hilft eine gute Struktur bei der langfristigen Wartung des Plugins.
Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihre erste benutzerdefinierte Funktionserweiterung von Grund auf.。
Erstellen Sie die Haupt-Plugin-Datei.
Jeder Plugin muss eine Hauptdatei haben, die die Metadaten des Plugins enthält. Wir beginnen zunächst mit der Entwicklung in der lokalen Entwicklungsumgebung…/wp-content/plugins/Erstellen Sie einen neuen Ordner im Verzeichnis, z. B.my-first-pluginDanach erstellen Sie innerhalb dieses Ordners die Haupt-PHP-Datei, die in der Regel den gleichen Namen wie der Ordner trägt:my-first-plugin.php。
Am Anfang dieses Hauptfiles müssen wir einen standardisierten Kommentarblock mit Informationen zum Plugin hinzufügen. Dieser Kommentarblock ist entscheidend dafür, dass WordPress das Plugin erkennt und es im Backend-Management-Interface anzeigt.
<?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
*/ Definition der Kernklasse des Plugins
Um die Encapsulation des Codes zu gewährleisten und Namenskonflikte zu vermeiden, ist es eine gute Praxis, objektorientierte Programmierung zu verwenden und alle Funktionen des Plugins in einer Klasse zu verpacken. Wir definieren diese Klasse in der Hauptdatei.
if ( ! class_exists( 'My_First_Plugin' ) ) {
class My_First_Plugin {
/**
* 构造方法,用于初始化插件
*/
public function __construct() {
// 初始化钩子
$this->init_hooks();
}
/**
* 初始化WordPress动作和过滤器钩子
*/
private function init_hooks() {
// 钩子将在这里添加
}
}
// 实例化插件类
new My_First_Plugin();
} if ( ! class_exists( 'My_First_Plugin' ) )Es handelt sich um eine Sicherheitsüberprüfung, die verhindert, dass Klassen doppelt definiert werden.__construct()Es handelt sich um den Konstruktor der Klasse, der automatisch aufgerufen wird, wenn die Klasse instanziiert wird. Darin haben wir einen privaten Methoden aufgerufen.init_hooks()Damit die Registrierung aller Hooks zentral verwaltet werden kann.
Mit dem Hook-System Funktionen hinzufügen
Das Hook-System von WordPress ist der Kern seiner ereignisgesteuerten Architektur und besteht aus Aktionen (Actions) und Filtern (Filters). Aktionen ermöglichen es Ihnen, Code zu bestimmten Zeitpunkten auszuführen, während Filter es Ihnen ermöglichen, Daten zu modifizieren.
Empfohlene Lektüre Von Anfänger bis Experte: WordPress-Plugins entwickeln – eine Schritt-für-Schritt-Anleitung zum Erstellen benutzerdefinierter Funktionen.。
Fügen Sie dem Inhalt des Artikels eine benutzerdefinierte Urheberrechtsangabe hinzu.
Eine häufige Anforderung ist es, automatisch Urheberinformationen am Ende jedes Artikels hinzuzufügen. Dies kann durch…the_contentDie Filter werden verwendet, um dies zu realisieren. Wir…init_hooks()Fügen Sie diesen Filter in die Methode hinzu.
Zuerst die Aktualisierung…init_hooks()Method:
private function init_hooks() {
// 使用过滤器在文章内容后追加版权信息
add_filter( 'the_content', array( $this, 'append_copyright_notice' ) );
} Hier,add_filter()Die Funktion befindet sich in unserer Klasse.append_copyright_noticeDie Methode wird montiert.the_contentAuf dem Filter. Jetzt müssen wir diese Callback-Methode definieren.
/**
* 在文章内容后追加版权信息的回调函数
*
* @param string $content 原始文章内容。
* @return string 追加了版权信息后的内容。
*/
public function append_copyright_notice( $content ) {
// 仅在主查询的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$copyright_text = sprintf(
'<p><small>© Urheberrechtshinweis: Dieser Artikel wurde erstmals auf %s veröffentlicht. Bei der Weiterverbreitung ist die Quelle anzugeben.</small></p>',
get_bloginfo( 'name' )
);
$content .= $copyright_text;
}
return $content;
} Diese Methode nimmt die ursprünglichen Daten entgegen.$contentDurch bedingte Auswertungenis_single()、in_the_loop()undis_main_query()Wir stellen sicher, dass die Urheberrechtsinformationen nur im Hauptinhalt der einzelnen Artikelseiten auf der Frontend-Plattform angezeigt werden und die Seitenansicht, die Zusammenfassung oder die Administrationsoberfläche nicht beeinträchtigen. Anschließend erstellen wir einen Urheberrechtstext und verwenden dazu den String-Verknüpfungsbefehl..=Fügen Sie dies dem ursprünglichen Inhalt hinzu und geben Sie schließlich den modifizierten Inhalt zurück.
Erstellen einer Menüseite für die Verwaltung
Das Hinzufügen einer einfachen Einstellungsseite für ein Plugin ist eine weitere häufig benötigte Funktion. Dafür werden Aktionshaken (Action Hooks) verwendet. Wir werden eine oberste Verwaltungsmenüseite erstellen.
„In“init_hooks()Fügen Sie in der Mitte noch eine Aktion hinzu:
Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihr erstes Funktionsmodul von Grund auf。
private function init_hooks() {
add_filter( 'the_content', array( $this, 'append_copyright_notice' ) );
// 添加管理菜单
add_action( 'admin_menu', array( $this, 'add_admin_menu_page' ) );
} Wenn WordPress das Verwaltungsmenü erstellt, wird dies ausgelöst.admin_menuAktionen. Wir definieren sie jetzt weiter.add_admin_menu_page()Method.
/**
* 向WordPress管理后台添加一个自定义菜单页面
*/
public function add_admin_menu_page() {
add_menu_page(
'我的第一个插件', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin-page', // 菜单别名
array( $this, 'render_admin_page' ), // 回调函数,用于输出页面内容
'dashicons-admin-plugins', // 图标
80 // 菜单位置
);
} add_menu_page()Die Funktion ist ein Teil der WordPress-Core-API und dient zum Registrieren eines obersten Menüs.manage_optionsEs handelt sich um eine Berechtigungsidentifikation, was bedeutet, dass nur der Administrator dieses Menü sehen kann. Wir haben dies explizit festgelegt.render_admin_pageMethoden zur Darstellung von Seiteninhalten.
/**
* 渲染管理页面内容的回调函数
*/
public function render_admin_page() {
?>
<div class="wrap">
<h1>Meine erste Plugin-Verwaltungsseite</h1>
<p>Herzlichen Glückwunsch! Sie haben erfolgreich ein WordPress-Plugin mit einer Verwaltungsseite erstellt.</p>
<p>Dies ist eine einfache Beispielseite, auf der Sie Formulare hinzufügen, Optionen einstellen usw. können.</p>
<p>Der aktuelle Name der Website ist:<strong><?php echo esc_html( get_bloginfo( 'name' ) ); ?></strong></p>
</div>
<?php
} Implementierung internationaler Standards und Sicherheitsbest Practices
Ein standardisiertes Plugin sollte auf Internationalisierung und Sicherheit achten, um sicherzustellen, dass es von Nutzern weltweit sicher verwendet werden kann.
Die Erweiterung auf die Unterstützung mehrerer Sprachen
Die Internationalisierung (i18n) ermöglicht es, die Texte der Plugins zu übersetzen. Wir haben dies bereits in den Kommentaren am Anfang der Plugins deklariert.Text Domain: my-first-pluginJetzt muss es verwendet werden.__()oder_e()Eine Funktion, die alle ausgegebenen Zeichenketten umschließt.
Zunächst einmal…__construct()oderinit_hooks()Fügen Sie eine Aktion hinzu, um die Übersetzungsdatei zu laden:
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) ); Definieren Sie eine Methode zur Übersetzung von Inhalten beim Laden:
public function load_textdomain() {
load_plugin_textdomain(
'my-first-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages/'
);
} Anschließend wird der Bereich geändert, in dem der zuvor ausgegebene Text erschienen ist. Zum Beispiel wird dieser Text aktualisiert.append_copyright_noticeDer Text im Methodenblock:
$copyright_text = sprintf('<p><small>© %s: %s, %s.</small></p>',
__( '版权声明', 'my-first-plugin' ),
sprintf( __( '本文首发于%s', 'my-first-plugin' ), get_bloginfo( 'name' ) ),
__( '转载请注明出处', 'my-first-plugin' )
); Ebenso müssen die Zeichenketten auf der Update-Management-Seite aktualisiert werden:
<h1><?php esc_html_e( '我的第一个插件管理页面', 'my-first-plugin' ); ?></h1>
<p><?php esc_html_e( '恭喜!你已经成功创建了一个带有管理页面的WordPress插件。', 'my-first-plugin' ); ?></p> esc_html_e()Die Funktion übersetzt den Text und führt gleichzeitig HTML-Entschlüsselungen durch, was die Sicherheit erhöht.
Escape Output and Verify Input
Bei der Entwicklung von Plugins muss alle Daten, die an die Frontend-Software oder den Browser gesendet werden, entschlossen werden („escaped“). Ebenso müssen alle Eingaben von Benutzern oder externen Quellen überprüft und gereinigt werden.
Beim Ausgeben der Site-Names haben wir bereits die entsprechenden Informationen verwendet.esc_html()Dies sind wichtige Schritte zur Verhinderung von Cross-Site-Scripting (XSS)-Angriffen. Wenn der Name einer Funktion mit “_e” endet (was “echo” bedeutet), gibt die Funktion in der Regel den entschlüsselten Inhalt direkt aus. Funktionen, die mit “__” beginnen, hingegen geben die übersetzte Zeichenkette zurück; in diesem Fall müssen Sie den Inhalt manuell entschlüsseln und ausgeben.
Falls unsere Verwaltungsseite in Zukunft Formularabgaben verarbeiten soll, müssen wir dies sicherstellen.wp_verify_nonce()Um die Anfrage zu überprüfen und zu verwenden…sanitize_text_field()、intval()Es werden Funktionen wie diese verwendet, um die von Benutzern eingegebenen Daten zu bereinigen, bevor sie in die Datenbank gespeichert oder für andere Zwecke verwendet werden. Dies ist ein unverzichtbarer Schritt zur Sicherheit eines Webseites.
Zusammenfassungen
Mithilfe dieses Leitfadens haben wir mit der Erstellung einer grundlegenden Struktur für ein Plugin-Datei begonnen und schrittweise die Kernfunktionen des Plugins umgesetzt. Wir haben gelernt, wie man Code objektorientiert organisiert, wie man die leistungsstarken Aktionen (Actions) und Filter-Hooks von WordPress nutzt, um in den Ablauf des Systems einzugreifen, um benutzerdefinierte Funktionen für Artikelinhalte hinzuzufügen, sowie wie man eine Verwaltungsseite erstellt. Zudem haben wir die Themen Internationalisierung (i18n) sowie sichere Ausgabe/Eingabe (secure output/input) besprochen – zwei entscheidende Aspekte bei der Entwicklung professioneller Plugins.
Das ist nur ein Ausgangspunkt. Basierend auf diesem Rahmen kannst du weitere Möglichkeiten erkunden: Zusatzoptionen hinzufügen, benutzerdefinierte Artikeltypen und Kategorien erstellen, Widgets programmieren, AJAX-Interaktionen einbinden sowie Shortcodes nutzen usw. Denke daran, dass das Lesen der offiziellen WordPress-Plugin-Dokumentationen sowie des Kerncodes der beste Weg ist, um tiefgreifendes Wissen zu erlangen. Jetzt, da du die grundlegenden Fähigkeiten zum Erstellen von WordPress-Plugins von Grund auf beherrschst, kannst du anfangen, deine Ideen in die Realität umzusetzen.
FAQ Häufig gestellte Fragen
Müssen Plugins unbedingt mit Klassen entwickelt werden?
Nicht unbedingt. WordPress-Plugins können auch mit rein prozessorientierten Funktionen geschrieben werden. Es wird jedoch empfohlen, Klassen (Objektorientierte Programmierung) zu verwenden, da dies die Organisation des Codes verbessert, Variablen und Methoden in separaten Namensräumen ablegt, Konflikte mit Funktionennamen anderer Plugins oder Themes vermeidet und die Wartbarkeit sowie die Wiederverwendbarkeit des Codes erhöht.
Wie füre ich mein Plugin zum Debuggen ein?
Eine häufig verwendete Debugging-Methode bei der Entwicklung mit WordPress ist die Aktivierung von WP_DEBUG. Dies geschieht in der Regel im Wurzelverzeichnis Ihrer Website.wp-config.phpIn der Datei finden Sie die folgende Zeile und ändern Sie sie:define( 'WP_DEBUG', true );Sie können auch gleichzeitig mehrere Einstellungen vornehmen.define( 'WP_DEBUG_LOG', true );Auf diese Weise werden die Fehlermeldungen aufgezeichnet./wp-content/debug.logDie Datei befindet sich im Speicher, wird jedoch nicht auf der Seite angezeigt. Darüber hinaus sind die Konsole (Console) und die Netzwerk-Optionkarte (Network) der Browser-Entwicklungstools sowie die PHP-Fehlerprotokolle ebenfalls effektive Mittel zur Problemlösung.
Kann ich jQuery direkt in einem Plugin verwenden?
Ja, das ist möglich. Die WordPress-Core-Software enthält bereits die jQuery-Bibliothek integriert. Um deine eigenen JavaScript-Dateien oder Abhängigkeiten korrekt und sicher einzubinden, solltest du die folgenden Schritte befolgen:wp_enqueue_script()Funktion und in der Abhängigkeitsliste deklarieren.array( 'jquery' )Auf diese Weise stellt WordPress sicher, dass jQuery vor deinem eigenen Script geladen wird. Vermeide es unbedingt, entfernte jQuery-CDN-Links in Plugins fest einzukodieren – dies kann zu Konflikten oder Sicherheitsproblemen führen.
Welche Überprüfungen müssen vor der Veröffentlichung eines Plugins durchgeführt werden?
Vor der Veröffentlichung eines Plugins empfiehlt es sich, die folgenden Überprüfungen durchzuführen:
– Stellen Sie sicher, dass der Code den WordPress-Codestandards entspricht.
– Führen Sie die Internationalisierungsarbeiten durch und wickeln Sie alle für die Benutzer sichtbaren Zeichenketten mit Übersetzungsfunktionen ein.
– Testen Sie die Kompatibilität des Plugins mit verschiedenen WordPress- und PHP-Versionen.
– Überprüfen Sie, ob alle Ausgaben korrekt entschlossen wurden und alle Eingaben ordnungsgemäß überprüft und gereinigt wurden.
– Bereiten Sie eine klare Entfernungsmethode vor, mit der alle von dem Plugin erstellten Datenbankobjekte und Tabellen gelöscht werden können (sofern erforderlich).
– Verfassen Sie eine detaillierte Dokumentation zum Plugin.readme.txtDateien. Diese Schritte tragen dazu bei, die Professionalität und Zuverlässigkeit des Plugins zu verbessern.
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.
- WordPress-Plugin-Entwicklungshandbuch: Von Null zu Eins – Erstellen Sie Ihr erstes benutzerdefinierte Plugin
- Wie man ein WordPress-Plugin-Entwickler wird: Ein umfassender Leitfaden von Grund auf
- Komplettanleitung zur Entwicklung von WordPress-Plugins: Von der Grundlagenkenntnis bis zur Meisterschaft – Erstellen Sie professionelle Erweiterungen
- WordPress-Plugin-Entwicklung von der Grundlage bis zur Meisterschaft: Erstellen Sie Ihr erstes benutzerdefiniertes Plugin
- Vom Nullpunkt zum Erreichen des ersten Erfolgs: Ein umfassender Leitfaden zur schrittweisen Entwicklung deines ersten WordPress-Plugins