Praktischer Leitfaden zur Entwicklung von WordPress-Plugins: Erstellen Sie Ihr erstes Plugin von Grund auf.

3-Minuten-Lesung
2026-03-13
2026-06-03
2,179
Ich bekomme eine Provision, wenn du über die untenstehenden Links einkaufst – ohne zusätzliche Kosten für dich.

Vorbereitungsarbeiten vor der Entwicklung eines Plugins

Bevor Sie mit dem Schreiben von Code beginnen, müssen Sie eine geeignete Entwicklungsumgebung einrichten und die grundlegende Struktur von WordPress-Plugins verstehen. Dazu gehören die Auswahl einer Serverumgebung, eines Texteditors oder einer integrierten Entwicklungsumgebung sowie ein klares Verständnis der Organisation von Plugin-Dateien.

Das Einrichten einer Entwicklungsumgebung

Eine effiziente lokale Entwicklungsumgebung ist von entscheidender Bedeutung. Es wird empfohlen, Tools wie XAMPP, MAMP oder Local by Flywheel zu verwenden, um schnell einen lokalen Server mit PHP, MySQL und Apache/Nginx einzurichten. Diese Tools können die Online-Umgebung simulieren, sodass Sie ohne Beeinträchtigung der Produktionswebsite entwickeln und debuggen können. Gleichzeitig sollten Sie einen leistungsstarken Code-Editor wie Visual Studio Code oder PhpStorm auswählen, der eine hervorragende Syntaxhervorhebung, Code-Vorschläge und Debugging-Unterstützung für PHP, HTML, JavaScript und CSS bietet.

Das Verständnis der grundlegenden Struktur eines Plugins.

WordPress-Plugins sind im Wesentlichen ein oder mehrere Elemente, die sich auf /wp-content/plugins/ PHP-Dateien im Verzeichnis. Jedes Plugin benötigt mindestens eine Hauptdatei, deren Dateiname normalerweise einzigartig ist, z. B. my-first-plugin.phpDer Anfang dieser Hauptdatei enthält einen speziellen Kommentar, der als “Plugin-Header-Informationen” bezeichnet wird. WordPress verwendet diese Informationen, um Ihr Plugin in der Administrationsoberfläche zu erkennen und anzuzeigen. Eine gute Struktur für Plugins sollte die Organisation des Codes für verschiedene Funktionen in verschiedenen Unterverzeichnissen berücksichtigen, z. B. /includes/ Zur Speicherung der Kernklassen-Dateien,/js/ und /css/ Zur Speicherung von Frontend-Ressourcen,/languages/ Zur Internationalisierung von Dokumenten.

Empfohlene Lektüre Eine vollständige Anleitung zur Entwicklung von WordPress-Plugins: Von der Grundlage bis zur Veröffentlichung im App Store

Erstellen Sie Ihre erste Plugin-Datei.

Nun lassen Sie uns mit der Erstellung der Kern-Datei des ersten Plugins beginnen. Wir werden mit dem Schreiben der Header-Informationen des Plugins beginnen und eine einfache Funktion hinzufügen, um zu überprüfen, ob das Plugin ordnungsgemäß funktioniert.

UltaHost – WordPress-Hosting-Anbieter
30-tägige Geld-zurück-Garantie, unbegrenztes Bandbreiten- und Datenbankvolumen, kostenlose DDoS-Schutzmaßnahmen sowie ein Rabatt von 501 auf 4 Terabyte bei einer Kaufdauer von 3 Jahren.

Erstellen Sie die Kopfinformationen für das Plugin.

Der Hauptdatei des Plugins muss am Anfang einen standardmäßigen Header-Kommentar enthalten. Dieser Kommentarblock stellt WordPress Metadaten zum Plugin-Namen, zur Beschreibung, zur Version, zum Autor usw. zur Verfügung. Hier ist ein Beispiel für das Minimum:

<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://yourwebsite.com/my-first-plugin
 * Description: 这是一个用于学习的简单 WordPress 插件,它将在文章底部添加一段自定义文本。
 * Version:     1.0.0
 * Author:      你的名字
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 */

Dieser Code sollte am Anfang der Haupt-PHP-Datei des Plugins platziert werden. Speichern Sie diese Datei unter /wp-content/plugins/my-first-plugin/my-first-plugin.php Danach sollten Sie auf der “Plugins”-Seite im WordPress-Back-End ein neues Plugin mit dem Namen “Mein erstes Plugin” sehen, das Sie aktivieren können. Derzeit hat es noch keine Funktionen.

Die Implementierung der ersten einfachen Funktion

Nachdem wir das Plugin aktiviert haben, implementieren wir eine klassische Funktion: Das automatische Hinzufügen eines benutzerdefinierten Textes am Ende jedes Artikelinhalts. Wir werden dazu the_content Filter. Ändern Sie Ihre Hauptdatei und fügen Sie den folgenden Code unter den Header-Informationen hinzu:

/**
 * 在文章内容末尾添加自定义文本
 *
 * @param string $content 文章原始内容。
 * @return string 修改后的内容。
 */
function mfp_add_footer_text( $content ) {
    // 仅在主查询的单篇文章页面显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Vielen Dank für das Lesen! Dieser Artikel wird Ihnen von [meinem ersten Plugin] präsentiert.</em></p>'// Den benutzerdefinierten Text in den Footer einfügen  
function mfp_add_footer_text( $content ) {  
    if ( ! empty( $content ) ) {  
        $custom_text = get_option( ‘mfp_custom_text’ );  
        if ( ! empty( $custom_text ) ) {  
            $content .= '\n';  
            $content .= $custom_text;  
        }  
    }  
    return $content;  
}  
// Den benutzerdefinierten Funktionsaufruf zum Filter 'the_content' hinzufügen  
add_filter( 'the_content', 'mfp_add_footer_text' );

Nachdem Sie die Datei gespeichert haben, müssen Sie den Hintergrund nicht aktualisieren. Besuchen Sie einfach einen beliebigen Artikel auf der Website, und Sie werden sehen, dass der von uns hinzugefügte Text am Ende des Artikels erscheint. Dieses Beispiel zeigt eines der Kernmuster der WordPress-Plug-in-Entwicklung: Die Verwendung von Hooks zur Einbindung in die Kernprozesse von WordPress.add_filter Es ist eine Funktion, die zum Verbinden von Filtern verwendet wird, und the_content Dies ist einer von vielen Filtern, die zum Ändern von Inhalten verwendet werden können.

Empfohlene Lektüre Das ultimative Handbuch für die Entwicklung von WordPress-Plugins: Von Null bis Eins professionelle Plugins erstellen

Die Entwicklung der Kernfunktionen des Plugins

Nachdem wir über die Grundkenntnisse verfügen, können wir erweiterte Funktionen erkunden, z. B. das Erstellen von Verwaltungsseiten und das Organisieren von Code in Klassen. Dies hilft uns, komplexere und leichter wartbare Plugins zu erstellen.

Erstellt ein Plugin-Verwaltungsmenü und eine Einstellungsseite.

Viele Plugins müssen dem Benutzer Konfigurationsoptionen bieten. Dies wird normalerweise durch Hinzufügen einer Menüseite zum WordPress-Dashboard erreicht. Im Folgenden wird ein Beispiel für das Hinzufügen einer Hauptmenüseite gezeigt:

**
 * Hinzufügen eines Hauptmenüpunkts im Backend-Menü
 */
function mfp_add_admin_menu() {
    add_menu_page(
        'Meine Plugin-Einstellungen', // Seitentitel
        'Mein Plugin',   // Menütitel
        'manage_options', // Berechtigungsanforderungen
        'mfp-settings-page', // Menü-Slug
        'mfp_render_settings_page', // Zurückruf-Funktion zum Rendern der Seite
        'dashicons-admin-generic', // Symbol (optional)
        80 // Position im Menü (optional)
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * Zurückruf-Funktion zum Rendern der Einstellungsseite
 */
function mfp_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>\n</h1>
        <form action="/de/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出安全隐藏字段
            settings_fields( 'mfp_settings_group' );
            // 输出设置区块
            do_settings_sections( 'mfp-settings-page' );
            // 输出保存按钮
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Dieser Code verwendet add_menu_page Die Funktion fügt einen neuen Menüpunkt hinzu und gibt dessen Bezeichnung an. mfp_render_settings_page Funktionen, um HTML-Seiten zu generieren. Um speicherbare Formularfelder zu einer Seite hinzuzufügen, müssen Sie diese zusätzlich verwenden. register_setting, add_settings_section und add_settings_field Sie verwenden Funktionen wie setenv, getenv und putenv, um Einstellungen zu registrieren und zu definieren.

hosting.com Shared Hosting
Hohe Leistung mit AMD EPYC-CPUs, NVMe-SSD-Speicher und LiteSpeed, fachkundiger Inhouse-Support rund um die Uhr, erweiterte Sicherheitsmaßnahmen einschließlich SSL, Brute-Force-, Malware- und DDoS-Schutz, Einsparungen von bis zu 73%

Verwenden Sie objektorientierte Programmierung, um den Code zu organisieren.

Für Plugins mit etwas komplexeren Funktionen kann die Verwendung der objektorientierten Methode dazu beitragen, Daten und Funktionen in Klassen zu kapseln, was zu einer klareren Code-Struktur und einer Verringerung von Namenskonflikten führt. Nachfolgend finden Sie ein einfaches Beispiel für eine Klassenstruktur:

class MyFirstPlugin {
    /**
     * 构造方法,用于初始化钩子
     */
    public function __construct() {
        add_action( 'init', array( $this, 'init' ) );
        add_filter( 'the_content', array( $this, 'modify_content' ) );
    }

/**
     * ‘init’ 钩子的回调函数
     */
    public function init() {
        // 插件初始化代码,例如注册短代码、自定义文章类型等
        load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }

/**
     * 修改文章内容的回调函数
     */
    public function modify_content( $content ) {
        // 类内部实现功能逻辑
        if ( is_single() ) {
            $content .= '<p>Dies ist der Inhalt, der von der Klassenmethode hinzugefügt wurde.</p>';
        }
        return $content;
    }
}
// 实例化插件类
new MyFirstPlugin();

Durch die Einbettung von Funktionen in MyFirstPlugin In einer Klasse sind alle relevanten Eigenschaften und Methoden in demselben Bereich konzentriert. Verwenden Sie array( $this, ‘method_name’ ) Die Syntax ermöglicht es, Klassenmethoden an WordPress-Hooks zu binden. Dieses Muster wird empfohlen, um mittelgroße und große Plugins zu erstellen.

Plugin-Veröffentlichung und -Wartung

Nachdem die Entwicklung abgeschlossen ist, müssen Sie sicherstellen, dass das Plugin sicher und effizient ist und zur Verteilung an andere Benutzer bereit ist. Dies beinhaltet sicheres Codieren, Leistungsoptimierung und die endgültige Vorbereitung zur Veröffentlichung.

Empfohlene Lektüre Vom Einstieg zum Meistern: Ein umfassender Leitfaden und Praktikumskurs für die Entwicklung von WordPress-Plugins

Sicherheit und Datenvalidierung

Die Sicherheit von Plugins ist von höchster Priorität. Vertrauen Sie niemals Benutzereingaben oder Daten, die direkt aus der Datenbank abgerufen werden. Vor der Verarbeitung von Daten müssen diese validiert, bereinigt und entkodet werden.
* Validierung: Überprüfung, ob die Daten dem erwarteten Format entsprechen (z. B. ob es sich um eine E-Mail-Adresse oder eine Zahl handelt). Hierfür können Sie Tools wie filter_var Oder von WordPress. sanitize_* Eine Reihe von Funktionen.
* Bereinigung (Sanitization): Entfernen Sie unsichere Zeichen aus den Daten, bevor Sie sie in die Datenbank eingeben oder zur Ausgabe verwenden. Beispielsweise können Sie hierfür Folgendes verwenden: sanitize_text_field Verarbeiten Sie die Texteingabe.
* 转义 (Escaping):在将数据输出到 HTML、JavaScript 或 URL 时,必须根据上下文进行转义,以防止跨站脚本攻击。WordPress 提供了 esc_html, esc_js, esc_url und esc_attr Zum Beispiel können Sie die folgenden Funktionen verwenden:

Zum Beispiel, wenn man eine Variable aus einer Datenbank ausgibt:

InterServer Shared Hosting
Shared Hosting $2.50 USD pro Monat, erster Monat $0.1 USD Promo-Code tryinterserver, 461 Cloud-Apps Skripte, ein Klick installieren.
// 假设 $user_input 是从数据库获取的文本
echo '<div class="message">'`. esc_html($user_input)`.'</div>';
// 或者用于 HTML 属性
echo '<input type="text" value="' . esc_attr( $user_input ) . '">';

Leistungsoptimierung und Best Practices

Ein gutes Plugin sollte die Leistung der Website so wenig wie möglich beeinträchtigen. Befolgen Sie die folgenden Best Practices:
* Ressourcen nach Bedarf laden: Verwenden Sie wp_enqueue_script und wp_enqueue_style Funktionen, und laden Sie Ihre CSS- und JavaScript-Dateien nur auf den Seiten, die sie benötigen. Durch wp_enqueue_scripts Der Haken (vordere Seite) und admin_enqueue_scripts Der Hook (im Hintergrund) wird zum Mounten verwendet.
* Vernünftiger Einsatz von Hooks: Vermeide, jedes Mal, wenn eine Seite geladen wird, eine Menge unnötigen Codes auszuführen. Hänge deine Funktionen an die am besten geeigneten Hooks und nutze bedingte Tags (wie <). is_admin(), is_single()) um den Bereich der Codeausführung einzuschränken.
* Optimierung von Datenbankabfragen: Versuchen Sie, direkte SQL-Abfragen so weit wie möglich zu reduzieren, und verwenden Sie vorzugsweise die APIs von WordPress (z. B. WP_Query, get_postsWenn Sie eine benutzerdefinierte Abfrage durchführen müssen, stellen Sie sicher, dass Sie $wpdb Klassifizieren Sie und richten Sie einen Abfrage-Cache ein.
* Bereitstellung einer Option zum Deinstallieren und Bereinigen: Überlegen Sie, ob die vom Plugin erstellten Daten (z. B. Datenbanktabellen, Optionen usw.) bereinigt werden müssen, wenn der Benutzer das Plugin deinstalliert. Dies kann durch die Registrierung eines Deinstallations-Hooks (in einer separaten Datei) erreicht werden.

Zusammenfassungen

Dieser Artikel führt Sie durch den Kernprozess der WordPress-Plugins-Entwicklung. Wir beginnen mit der Einrichtung einer Entwicklungsumgebung und dem Verständnis der grundlegenden Struktur, erstellen schrittweise unser erstes funktionales Plugin-File, erkunden fortgeschrittene Themen wie das Hinzufügen einer Backend-Verwaltungsoberfläche und die Organisation des Codes nach objektorientierten Methoden und betonen schließlich die Bedeutung von Sicherheit, Leistung und Bereitschaft zur Veröffentlichung. Denken Sie daran, dass der Kern der Plugin-Entwicklung darin besteht, das umfangreiche Hook-System von WordPress geschickt zu nutzen, um dessen Funktionalität zu erweitern. Durch die Einhaltung von Sicherheitsstandards für die Programmierung, die Optimierung der Leistung und die Aufrechterhaltung eines sauberen Codes werden Sie in der Lage sein, robuste und zuverlässige Plugins zu erstellen und einen Beitrag zur globalen WordPress-Community zu leisten. Das beste Mittel zur Verbesserung Ihrer Fähigkeiten besteht darin, ständig zu üben und den Quellcode des Kerns sowie anderer hervorragender Plugins zu lesen.

FAQ Häufig gestellte Fragen

Benötigt man fundierte Kenntnisse in PHP, um WordPress-Plugins zu entwickeln?

Obwohl es nicht erforderlich ist, Expertenniveau zu erreichen, sind solide PHP-Grundkenntnisse unerlässlich. Sie müssen Konzepte wie PHP-Syntax, Funktionen, Arrays, objektorientierte Programmierung usw. verstehen, da der WordPress-Core sowie seine Plugins und Themes alle in PHP geschrieben sind. Darüber hinaus ist Kenntnis von HTML, CSS und JavaScript für die Entwicklung von Plugins mit Frontend-Interaktionen ebenfalls von entscheidender Bedeutung.

Wie debugge ich mein WordPress-Plugin?

Zuerst stellen Sie sicher, dass in Ihrer… wp-config.php Aktivieren Sie im Dokument den WordPress-Debug-Modus. Setzen Sie WP_DEBUG Die Konstante wird auf „true“ gesetzt. Dadurch werden PHP-Fehler, Warnungen und Benachrichtigungen entweder auf dem Bildschirm angezeigt oder in eine Protokolldatei geschrieben. Zweitens wird… error_log Funktionen oder Tools wie das Query Monitor-Plug-in können zum Verfolgen von Variablenwerten und Ausführungsabläufen verwendet werden. Die Entwicklerwerkzeuge des Browsers (Konsolen- und Netzwerk-Registerkarten) sind ebenfalls unverzichtbar für das Debuggen von JavaScript und AJAX-Anfragen.

Wie kann meine Erweiterung mit verschiedenen Versionen von WordPress kompatibel sein?

Während der Entwicklung sollten Sie regelmäßig die offizielle Dokumentation konsultieren, um sich über die Veraltung und Änderungen von Funktionen in verschiedenen Versionen zu informieren. Verwenden Sie Bedingungslogik und Versionsprüfungen, um Abwärtskompatibilität zu gewährleisten. Beispielsweise können Sie Folgendes verwenden: function_exists() Überprüfen Sie, ob eine bestimmte Funktion verfügbar ist, und bieten Sie eine alternative Implementierung an, falls dies nicht der Fall ist. Gleichzeitig sollten Sie in der Readme.txt-Datei des Plugins deutlich angeben, für welche WordPress-Versionen Sie Tests durchgeführt haben.

Wie kann ich mein Plugin internationalisieren?

WordPress nutzt die GNU gettext-Technologie zur Internationalisierung. Sie müssen dazu __() oder _e() Der Der Funktionsaufruf umfasst alle zu übersetzenden Zeichenketten. Anschließend wird mithilfe eines Tools zur Erstellung von POT-Dateien (z. B. Poedit) eine Übersetzungsvorlage erstellt, mit der Übersetzer die entsprechenden .mo- und .po-Dateien für die jeweilige Sprache erstellen können. Abschließend werden diese Dateien verwendet. load_plugin_textdomain() Der Funktion wird beim Initialisieren des Plugins befohlen, die Sprachdatei zu laden.