WordPress-Plugin-Entwicklung von der Grundlage bis zur Meisterschaft: Schritt für Schritt lernen Sie, Ihre eigenen exklusiven Funktionen zu erstellen

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

In der heutigen Internetwelt hat WordPress aufgrund seiner hohen Erweiterbarkeit einen großen Marktanteil erlangt. Einer der Hauptreize von WordPress ist das Plugin-System, das es Entwicklern ermöglicht, nahezu jede Funktion hinzuzufügen. Ob es sich um einfache Shortcode-Tools oder um erweiterte Funktionen für Content-Management-Systeme handelt – all das kann mit gut konzipierten Plugins umgesetzt werden. Die Beherrschung von Plugin-Entwicklungsfähigkeiten bedeutet, dass Sie nicht nur maßgeschneiderte Lösungen für Ihre eigenen oder Kundenprojekte erstellen können, sondern auch Ihre Ideen in verkaufbare Produkte umwandeln und in einen weiten Ökosystemmarkt eintreten können.

Plugin-Entwicklungsumgebung und Grundlagen

Bevor Sie mit der Entwicklung eines WordPress-Plugins beginnen, ist eine stabile und effiziente lokale Entwicklungsumgebung unerlässlich. Wir empfehlen Tools wie Local by Flywheel, Laragon oder Docker, um schnell eine WordPress-Umgebung mit PHP, MySQL sowie Apache/Nginx aufzubauen. Dadurch können Sie Tests und Fehlersuche in einer sicher isolierten Umgebung durchführen.

Erstellen Sie Ihre erste Plugin-Datei.

Ein Plugin kann so einfach sein, dass es nur aus einer einzigen Datei besteht – doch aus Gründen der Standardisierung beginnen wir mit einer grundlegenden Struktur. Gehen Sie in das Installationsverzeichnis von WordPress… wp-content/plugins Ordner: Erstellen Sie einen neuen Ordner, zum Beispiel… my-first-plugin

Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihre erste Funktionserweiterung von Grund auf

In diesem Ordner erstellen Sie eine Haupt-Plugin-Datei, die in der Regel nach dem Namen des Plugins benannt wird, zum Beispiel: my-first-plugin.phpJeder Plugin muss eine standardisierte Kopfzeile mit Kommentaren enthalten – dies ist die einzige Möglichkeit für WordPress, die Informationen des Plugins zu erkennen.

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.
<?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
 */

Nachdem Sie die Datei gespeichert haben, gehen Sie zur “Plugins”-Seite im WordPress-Backend. Dort sollten Sie Ihr Plugin in der Liste der Plugins sehen. Sie können es genauso aktivieren wie andere Plugins. Auch wenn es derzeit noch keine Funktionen bietet, haben Sie den ersten Schritt erfolgreich gemeistert. Für die weitere Entwicklung empfiehlt es sich, eine klare Verzeichnisstruktur innerhalb des Plugins-Ordners einzurichten. admin/(Betriebssystem- und Server-Code)public/(Frontend-Bezogener Code)includes/(Kernfunktionen und Klassenbibliotheken) sowie zur Speicherung von JavaScript- und CSS-Ressourcen assets/ Mappe.

Core Development Concepts: Hooks and Actions

Nachdem wir die Grundstruktur von Plugins verstanden haben, müssen wir uns nun dem “Herz” des WordPress-Plugin-Systems zuwenden: den Hooks. Es gibt zwei Arten von Hooks: Actions und Filters. Sie bilden den Kern der ereignisgesteuerten Architektur von WordPress und ermöglichen es Ihrem Code, zu bestimmten Zeitpunkten in den Kernprozess von WordPress eingefügt zu werden, um dort ausgeführt zu werden.

Verstehen von Aktionshookern (Action Hooks)

Action Hooks ermöglichen es Ihnen, benutzerdefinierten Code zu bestimmten Zeitpunkten im Lebenszyklus von WordPress auszuführen. Zum Beispiel wird ein entsprechender Action Hook ausgelöst, wenn ein Artikel veröffentlicht wird oder wenn ein Benutzer sich anmeldet.

ausnutzen add_action() Funktionen können Ihre eigenen Funktionen an bestimmte „Hook-Points“ (Verbindungsstellen) binden. Die grundlegende Syntax dafür lautet:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args );Lassen Sie uns eine Zeile mit benutzerdefiniertem Text in den Fußbereich der Website-Seite hinzufügen.

Empfohlene Lektüre WordPress-Plugin-Entwicklung von der Grundlage bis zur Meisterschaft: Ein umfassender Leitfaden für die Erstellung hochanpassbarer Funktionen

function myplugin_add_footer_text() {
    echo '<p id="custom-footer">Vielen Dank für die Nutzung dieser Website! Dieser Inhalt wurde durch mein Plugin hinzugefügt.</p>';
}
add_action( ‘wp_footer’, ‘myplugin_add_footer_text’ );

Nach der Aktivierung des Plugins mit dem oben genannten Code wirst du im Frontend der Website sehen, dass dieser Text in den Fußbereich hinzugefügt wurde. Dies ist ein typisches Beispiel für die Verwendung von Action-Hooks: Code wird an einer bestimmten Stelle ausgeführt, ohne die ursprünglichen Daten zu verändern – es erfolgen lediglich Ausgabe- oder Ausführungsvorgänge.

Die Filter-Hooks beherrschen…

Im Gegensatz zu Aktionen dienen Filter-Hooks dazu, Daten zu verändern. Sie ermöglichen es Ihnen, Daten vor ihrer Verwendung – beispielsweise vor dem Speichern in einer Datenbank oder der Ausgabe in einem Browser – zu bearbeiten. WordPress übermittelt die Daten an Sie, und Sie können diese bearbeiten, bevor sie weitergeleitet werden.

ausnutzen add_filter() Es gibt Funktionen, die Filter anwenden können. Zum Beispiel möchten wir am Ende eines Artikeltitels einen benutzerdefinierten Suffix hinzufügen.

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%
function myplugin_modify_title( $title ) {
    // 确保只在主循环且在前端单篇文章页面修改
    if ( is_single() && in_the_loop() ) {
        return $title . ‘ - 精彩内容’;
    }
    return $title;
}
add_filter( ‘the_title’, ‘myplugin_modify_title’ );

In diesem Beispiel…the_title Der Filter zeigt den Titel des aktuellen Artikels an. $title Die Funktion, der die Daten übergeben werden. myplugin_modify_titleNachdem Sie die Zeichenkette geändert und die neue Zeichenkette zurückgegeben haben, verwendet WordPress diesen geänderten Wert für die Ausgabe. Das Verständnis und die geschickte Anwendung von Aktionen (Actions) und Filtern (Filters) ist der Schlüssel, um die unbegrenzten Anpassungsmöglichkeiten von WordPress zu nutzen.

Erstellung von Plugin-Funktionen: Hinzufügen eines Verwaltungs-Menüs und von Optionen

Ein ausgereiftes Plugin benötigt in der Regel eine eigene Konfigurationsseite in der WordPress-Backend-Verwaltungsoberfläche, damit Benutzer Optionen einstellen können. Dies beinhaltet die Nutzung der WordPress-Menü-API.

Erstellen Sie ein oberes Verwaltungsmenü.

Sie können es verwenden. add_menu_page() Die Funktion fügt Ihrer Erweiterung ein oberes Menüelement hinzu. Sie definiert Informationen wie den Titel des Menüs, die erforderlichen Berechtigungen, den URL-Bereich usw. und verknüpft dies mit einer Rückruffunktion, die die Inhalte der Seite anzeigt.

Empfohlene Lektüre Einstiegsleitfaden für die Entwicklung von WordPress-Plugins: So erstellst du von Grund auf deine erste Funktionserweiterung

function myplugin_add_admin_menu() {
    add_menu_page(
        ‘我的插件设置’, // 页面标题
        ‘我的插件’, // 菜单标题
        ‘manage_options’, // 所需权限(管理员)
        ‘myplugin-settings’, // 菜单 Slug
        ‘myplugin_display_settings_page’, // 显示页面的函数
        ‘dashicons-admin-generic’, // 菜单图标(Dashicon)
        100 // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘myplugin_add_admin_menu’ );

function myplugin_display_settings_page() {
    ?&gt;
    <div class="“wrap”">
        <h1>\n</h1>
        <form action="/de/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
            <?php
            // 输出设置字段、非ce等
            settings_fields( ‘myplugin_options_group’ );
            do_settings_sections( ‘myplugin-settings’ );
            submit_button( ‘保存设置’ );
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Fügen Sie den oben genannten Code in Ihre Plugin-Datei ein. Nach der Aktivierung wird im linken Bereich des WordPress-Backends ein neuer Menüeintrag mit dem Namen “Meine Plugins” angezeigt. Wenn Sie darauf klicken, gelangen Sie zu einer Übersicht aller von Ihnen erstellten oder installierten Plugins. myplugin_display_settings_page Eine Seite, die durch die Ausführung einer Funktion gerendert wird.

Verwenden Sie die API zur Registrierung von Optionen.

Die manuelle Verarbeitung von Formularabgaben und -validierungen ist aufwendig und unsicher. WordPress bietet die leistungsstarke Settings-API an, um diesen Prozess zu vereinfachen. Diese API ist für die Verarbeitung der Nonce-Validierung von Formularen, die Überprüfung von Berechtigungen sowie die Speicherung von Daten zuständig.

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.

Zuerst musst du verwenden… register_setting() Registrieren Sie Ihre Einstellungsgruppen und Felder und verwenden Sie sie anschließend. add_settings_section() Fügen Sie einen Einstellbereich hinzu und verwenden Sie ihn. add_settings_field() Fügen Sie die konkreten Felder hinzu.

function myplugin_register_settings() {
    // 注册一组设置,数据将保存在 `myplugin_options` 选项中
    register_setting(
        ‘myplugin_options_group’, // 设置组名,与 settings_fields() 对应
        ‘myplugin_options’, // 选项名
        ‘myplugin_sanitize_callback’ // 数据清理回调函数(可选但推荐)
    );

// 添加一个设置区域
    add_settings_section(
        ‘myplugin_main_section’,
        ‘主要设置’,
        null, // 区域描述的回调函数
        ‘myplugin-settings’ // 页面 Slug
    );

// 在区域中添加一个文本字段
    add_settings_field(
        ‘myplugin_text_field’,
        ‘欢迎语’,
        ‘myplugin_text_field_render’, // 渲染字段输入框的函数
        ‘myplugin-settings’,
        ‘myplugin_main_section’
    );
}
add_action( ‘admin_init’, ‘myplugin_register_settings’ );

function myplugin_text_field_render() {
    $options = get_option( ‘myplugin_options’ );
    $value = $options[‘myplugin_text_field’] ?? ‘’;
    ?>
    <input type=“text” name=“myplugin_options[myplugin_text_field]” value=“<?php echo esc_attr( $value ); ?>”>
    <?php
}

function myplugin_sanitize_callback( $input ) {
    // 清理和验证输入数据
    $sanitized_input = [];
    if ( isset( $input[‘myplugin_text_field’] ) ) {
        $sanitized_input[‘myplugin_text_field’] = sanitize_text_field( $input[‘myplugin_text_field’] );
    }
    return $sanitized_input;
}

Jetzt verfügt Ihre Einstellungsseite über ein Textfeld mit Funktionen zur Validierung und Speicherung von Daten. Mithilfe der Settings-API können Sie komplexe Konfigurationsoberflächen sicher und effizient erstellen.

Plugin-Veröffentlichung und -Wartung

Wenn die Funktionen deines Plugins vollständig entwickelt und gründlich getestet wurden, kannst du darüber nachdenken, es mit anderen zu teilen. Dazu gehören die Internationalisierung des Codes, die Stärkung der Sicherheit sowie die Vorbereitung auf die Veröffentlichung.

Die Internationalisierung des Plugins umsetzen.

Damit deine Plugins auch von nicht-chinesischen Nutzern verwendet werden können, musst du alle für die Benutzer bestimmten Zeichenketten mit den Internationalisierungs-(i18n)-Funktionen von WordPress umschließen. __() Dient zum Ausgeben der Übersetzung._e() Für die direkte Ausgabe der Übersetzung.

Zuerst ändern Sie alle Zeichenketten in Ihrem Code:

// 在插件头部注释中,确保 Text Domain 正确
// 在代码中
function myplugin_display_settings_page() {
    ?&gt;
    <h1><?php _e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
    &lt;?php
}

Anschließend verwenden Sie ein Tool wie Poedit, um Ihren Plugin-Code zu scannen und eine entsprechende Ausgabe zu generieren. .pot(Template) File, and create it for the base language (such as English). .po Und das kompilierte… .mo Dokumente. Legen Sie diese Sprachdateien in den Ordner des Plugins. languages/ Im Ordner befinden sich die Übersetzungen. WordPress lädt automatisch die entsprechenden Übersetzungen nach den Spracheinstellungen der Website herunter.

Sicherheit und Leistung des Codes gewährleisten

Vor der Veröffentlichung müssen Sie unbedingt die Sicherheit des Codes überprüfen. Verwenden Sie für alle Benutzereingaben und -ausgaben die entsprechenden WordPress-Bereinigungsfunktionen. esc_html(), esc_attr(), sanitize_text_field() und wp_kses_post()Bei Datenbankabfragen wird… verwendet. $wpdb Methoden einer Klasse WP_QueryVermeiden Sie das direkte Zusammenfügen von SQL-Anweisungen, um Injection-Angriffe zu verhindern.

Gleichzeitig ist auf die Optimierung der Leistung zu achten. Nutzen Sie Haken („Hooks“) sinnvoll, um zu vermeiden, dass bei jedem Seitenladen viele unnötige Aktionen ausgeführt werden. Für komplexe Suchergebnisse sollten Sie die WordPress-Transients-API in Betracht ziehen, um diese zu cachen – beispielsweise durch die Verwendung entsprechender Funktionen. set_transient() und get_transient()

Schließlich sollten Sie den offiziellen WordPress-Plug-in-Entwicklungsrichtlinien sowie der Verzeichnisstruktur folgen und klare Dokumentation sowie eine README-Datei erstellen. Sie können Ihr Plug-in auch im offiziellen WordPress.org-Plug-in-Verzeichnis veröffentlichen, damit Nutzer es direkt über das Backend suchen und installieren können sowie automatische Updates erhalten.

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein systematischer Prozess, der damit beginnt, die Grundstruktur zu verstehen, anschließend das Hook-System sowie die Erstellung von Benutzeroberflächen zu erlernen, und schließlich sicherere, internationalisierbare Plugins zu erstellen. In diesem Artikel haben Sie die Schritte von der Erstellung des ersten leeren Plugins über die Erweiterung seiner Funktionen mithilfe von Aktionen und Filter-Hooks bis hin zur Entwicklung professioneller Backend-Einstellungsseiten mit der Settings-API kennengelernt sowie die Vorbereitungen vor der Veröffentlichung eines Plugins. Denken Sie daran: Der Schlüssel liegt in der Praxis – beginnen Sie mit einer einfachen Idee, iterieren Sie schrittweise und nutzen Sie das umfangreiche API sowie die Ressourcen der WordPress-Community voll aus. So können Sie ein leistungsstarkes und professionelles eigenes Plugin entwickeln, um Ihre WordPress-Website individuell anzupassen – oder sogar wertvolle Produkte zu kreieren.

FAQ Häufig gestellte Fragen

Welche Vorkenntnisse sind für die Entwicklung von WordPress-Plugins erforderlich?

Sie sollten über grundlegende PHP-Programmierkenntnisse verfügen, einschließlich Variablen, Funktionen, Arrays sowie den grundlegenden Konzepten der objektorientierten Programmierung. Ebenso ist ein grundlegendes Verständnis von HTML, CSS und JavaScript von entscheidender Bedeutung, da Sie mit der Frontend-Anzeige und -Interaktion arbeiten müssen. Eine Vertrautheit mit den grundlegenden Funktionen von WordPress sowie der Backend-Oberfläche ist eine Voraussetzung, um die Umgebung, in der Plugins laufen, zu verstehen.

Was ist der Unterschied zwischen Plugins und Themes? Wann sollte man Plugins entwickeln?

Die Themes steuern hauptsächlich das Erscheinungsbild und die Struktur einer Website, während Plugins zusätzliche Funktionen bereitstellen. Ein einfaches Kriterium zur Unterscheidung ist folgendes: Wenn eine Funktion eng mit dem visuellen Design der Website verbunden ist, gehört sie wahrscheinlich zu den Themes; wenn eine Funktion jedoch unabhängig ist und auch nach dem Wechsel des Themes weiterhin genutzt werden kann (z. B. Kontaktformulare, SEO-Optimierung, Caching), sollte sie als Plugin entwickelt werden. Die Einhaltung des Prinzips “Funktionen mit Plugins, Styles mit Themes” erleichtert die langfristige Wartung und Aktualisierung der Website.

Wie debugge ich mein WordPress-Plugin?

Zunächst einmal… wp-config.php Aktivieren Sie im File den Debugging-Modus für WordPress. WP_DEBUG Die Konstante ist auf trueDies wird PHP-Fehler, Warnungen und Benachrichtigungen auf der Seite anzeigen. Zweitens wird… error_log() Die Funktion schreibt benutzerdefinierte Debugging-Informationen in das Fehlerprotokoll des Servers. Für komplexe Logiken können professionelle Debugging-Tools wie Xdebug verwendet werden, zusammen mit den in der IDE eingestellten Breakpoints, um Zeile für Zeile zu debuggen. Die Console- und Network-Tabellen in den Browser-Entwicklungstools sind sehr nützlich zum Debuggen von Frontend-JavaScript-Code sowie AJAX-Anfragen.

Wie kann mein Plugin mit anderen Plugins kompatibel sein?

Um die Kompatibilität zu maximieren, sollte dein Plugin alle Funktionen, Klassen, Konstanten, Optionen sowie Datenbanktabellen mit einem eindeutigen Präfix versehen. Dadurch können Namenskonflikte effektiv vermieden werden. Verwende globale Variablen nur mit Bedacht. Bei der Hinzufügung von „Hook-Funktionen“ solltest du die Prioritätsparameter sorgfältig festlegen, um eine erwartete Ausführungsreihenfolge zu gewährleisten. Für gemeinsam genutzte Daten, die von anderen Plugins verändert werden könnten, solltest du sicherstellen, dass dein Code robust genug ist, um verschiedene Eingabesituationen zu bewältigen. Vor der Veröffentlichung solltest du dein Plugin in verschiedenen Umgebungen sowie in Kombination mit gängigen Plugins testen.

Wie füge ich einer meiner Plugins eine benutzerdefinierte Datenbanktabelle hinzu?

Obwohl WordPress viele Funktionen und Tools bietet… wp_options Es handelt sich um Einstellungen zur Tabellenverwaltung – doch für große Mengen an strukturierten Daten ist die Leistung von benutzerdefinierten Datenbanktabellen besser. Sie können die Aktivierungs-Hook-Funktionen der Plugins nutzen (verwenden Sie dazu…) register_activation_hook() Sie sollten den SQL-Code zur Erstellung der Tabelle in der Funktion „Funktionen registrieren“ schreiben. Verwenden Sie unbedingt… $wpdb->prefix Um das richtige Präfix zu erhalten und es zu verwenden… dbDelta() Es gibt eine Funktion, die die Erstellung oder Aktualisierung von Tabellen durchführt und dabei intelligent mit Unterschieden in der Tabellendatei umgeht. Gleichzeitig muss berücksichtigt werden, wie diese Daten bei der Deinstallation des Plugins gelöscht werden sollen, wobei dem Benutzer die Wahl gelassen werden sollte.