Von Null an: Ein vollständiger Leitfaden und praktisches Tutorial zur Entwicklung von WordPress-Plugins

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

Vorbereitungsarbeiten und Umgebungseinstellungen

Bevor du ein WordPress-Plugin entwickelst, ist es von entscheidender Bedeutung, eine stabile lokale Entwicklungsumgebung einzurichten. Dadurch kannst du Tests und Fehlersuche durchführen, ohne die Online-Website zu beeinträchtigen.

Die Auswahl und Konfiguration der lokalen Entwicklungsumgebung

Der wichtigste Schritt besteht darin, einen lokalen Server zu erstellen, der PHP, MySQL sowie Apache/Nginx integriert. Sie können dabei selbst entscheiden, welche Komponenten Sie verwenden möchten.MAMPXAMPPSolche Integrationspakete bieten eine einfache Installationsmöglichkeit für Windows und macOS. Für fortgeschrittene Nutzer stehen zusätzliche Optionen zur Verfügung.DockerDie Containerisierung Ihrer Entwicklungsumgebung ist die derzeitige beste Praxis, da sie eine einheitliche Umgebung sicherstellt und die Wiederherstellung der Umgebung erleichtert. Egal für welche Methode Sie sich entscheiden, stellen Sie sicher, dass Ihre PHP-Version mit der von den Plugins erwarteten Standardversion kompatibel ist (z. B. PHP 7.4 oder neuer) und dass die notwendigen PHP-Erweiterungen, wie MySQLi oder PDO, aktiviert sind.

Installieren und konfigurieren Sie WordPress.

Sobald die lokale Serverumgebung bereit ist, müssen Sie die WordPress-Core-Software installieren. Laden Sie die neueste stabile Version von der offiziellen WordPress.org-Website herunter und entpacken Sie sie im Web-Root-Verzeichnis Ihres Servers (z. B.htdocsoderwwwDer Plugin wird in einem Ordner unterhalb dieser Verzeichnisse abgelegt. Anschließend können Sie den Ordner über einen Browser besuchen und die Installation gemäß den bekannten “Fünf-Minuten-Installationsschritten” durchführen. Es wird empfohlen, eine spezielle Datenbank für die Plugin-Entwicklung zu erstellen und sich den Namen der Datenbank, den Benutzernamen sowie das Passwort zu notieren. Nach der Installation gehen Sie in das WordPress-Backend und ändern die Struktur der festen Links auf ein nicht standardmäßiges Format (z. B. “Artikelname”). Dies hilft dabei, die Kompatibilität des Plugins mit den permanenten Links zu überprüfen.

Empfohlene Lektüre Einführung in die WordPress-Themenentwicklung: Erstellen Sie Ihr erstes benutzerdefiniertes Thema von Grund auf.

Empfohlene Entwicklungstools, die unerlässlich sind:

Effiziente Entwicklung ist ohne geeignete Werkzeuge nicht möglich. Zunächst benötigst du einen Code-Editor – beispielsweise einen kostenlosen und leistungsstarken Editor.Visual Studio CodeInstallieren Sie Plugins, die für PHP, WordPress sowie die intelligente Erkennung von Code geeignet sind. Auch ein Tool zur Versionsverwaltung ist erforderlich.GitEs ist unerlässlich, um Änderungen am Code zu verwalten und die Entwicklungsgeschichte nachverfolgen zu können. Die Browser-Entwicklungstools (Chrome DevTools oder Firefox Developer Edition) sind für die Frontend-Debugging-Arbeiten von großer Bedeutung. Zuletzt sollten Sie auch in Betracht ziehen, ein Tool zur Überprüfung der Codequalität zu installieren.PHP_CodeSnifferKombinierenWordPress-Coding-StandardsEine Regelset hilft Ihnen dabei, die offiziellen Codierstandards von WordPress einzuhalten.

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.

Grundlegende Architektur von Plugins und Kerndateien

Ein standardisiertes WordPress-Plugin verfügt über eine bestimmte Verzeichnis- und Dateistruktur. Die Einhaltung dieser Normen ist die Grundlage dafür, dass das Plugin vom System erkannt und effektiv verwaltet werden kann.

Die grundlegende Struktur einer Hauptdatei und ihre Funktionen

Jeder Plugin muss eine Haupt-PHP-Datei haben, die als Eingangspunkt für das Plugin dient. Die Kommentare am Anfang dieser Datei enthalten die Metadaten des Plugins und sind entscheidend dafür, dass WordPress das Plugin erkennt. Hier ist eine der grundlegendsten Haupt-Dateien für ein Plugin:my-first-plugin.phpBeispiel:

<?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
 * Domain Path:       /languages
 */

// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

Plugin NameDies ist das einzige erforderliche Feld, das zur Anzeige in der Liste der Backend-Plugins verwendet wird. Es wird empfohlen, dieses Feld zu definieren.ABSPATHÜberprüfen Sie, um zu verhindern, dass böswillige Benutzer direkt auf die Kerndateien des Plugins zugreifen.

Fügen Sie dem Plugin funktionalen Kerncode hinzu.

Nach den Kopfkommentaren kannst du mit dem Schreiben des Funktionscodes für das Plugin beginnen. Das einfachste Beispiel besteht darin, eine “Hello World”-Meldung in die Administrationsoberfläche einzufügen. Du kannst dazu…add_actionDie „Hook“-Funktionen ermöglichen es, benutzerdefinierte Funktionen an bestimmten Ausführungspunkten von WordPress anzubinden.

Empfohlene Lektüre Von Grund auf: Ein vollständiger Leitfaden und praktisches Tutorial zur Entwicklung von WordPress-Plugins

/**
 * 在管理后台顶部显示欢迎信息
 */
function myfp_display_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Willkommen bei der Nutzung meines ersten Plugins!</p></div>';
}
add_action( 'admin_notices', 'myfp_display_admin_notice' );

Um die Struktur des Codes zu gewährleisten und Namenskonflikte zu vermeiden, sollten alle Funktionen und Klassennamen mit einem eindeutigen Präfix versehen werden, wie hier gezeigt.myfp_(Abkürzung für „My First Plugin“).

Organisationsrichtlinien für den Plugin-Verzeichnisordner und die Ressourcendateien

Ein etwas komplexeres Plugin umfasst in der Regel mehrere Dateien. Eine sinnvolle Verzeichnisstruktur verbessert die Wartbarkeit erheblich. Die gängigen Organisationsmethoden sind wie folgt:
- /assets/Hier werden statische Ressourcen wie CSS, JavaScript-Dateien, Bilder und Schriftarten gespeichert.
- /includes/Hier werden die wichtigsten PHP-Klasse-Dateien sowie die Funktionen-Dateien gespeichert.
- /admin/Hier werden PHP-, CSS- und JS-Dateien gespeichert, die ausschließlich mit der Administratorenoberfläche zusammenhängen.
- /public/Hier werden Dateien gespeichert, die für die Frontend-Seiten von Webseiten relevant sind.
- /languages/Hier werden die Dateien für die internationale Lokalisierung (Dateien mit den Endungen .po und .mo) gespeichert.

Denken Sie immer daran, dass die Haupt-Plugin-Datei sich im Wurzelverzeichnis des Plugins befindet. Wenn Sie auf Ressourcendateien im Code verweisen, sollten Sie diese entsprechend angeben.plugin_dir_url( FILE )oderplugin_dir_path( FILE )Um die korrekte URL oder Serveradresse dynamisch zu erhalten…

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%

Hook-Mechanismus und Interaktion mit der Kern-API

Der Kern der WordPress-Plugin-Entwicklung liegt im sogenannten “Hook”-Mechanismus. Dieser ermöglicht es, eigenen Code zu bestimmten Zeitpunkten im laufenden Betrieb des WordPress-Systems einzufügen und auszuführen – sei es im Kern von WordPress, in den Themes oder in anderen Plugins.

Verständnis von Aktion-Hooks und Filter-Hooks

Es gibt zwei Hauptkategorien von Hooken: Aktionen (Actions) und Filter (Filters). Aktionshooken werden verwendet, um Ihren Code auszuführen, wenn ein bestimmtes Ereignis stattfindet – beispielsweise nach der Veröffentlichung eines Artikels oder vor dem Laden einer Seite. Sie geben keinen Wert zurück, sondern führen einfach eine bestimmte Aktion aus. Die zentrale Funktion, die dabei verwendet wird, ist…add_action()unddo_action()Filter-Hooks dienen dazu, Daten zu modifizieren. Bevor die Daten verwendet, gespeichert oder angezeigt werden, können Sie sie abfangen und verändern. Der Hook muss einen Wert zurückgeben. Die zentrale Funktion, die hier verwendet wird, ist…add_filter()undapply_filters()

Anpassbare Funktionen an Standard-Hooks binden

Das WordPress-Kernsystem bietet Hunderte von Standard-Hooks. Zum Beispiel kann man am Ende des Artikelinhalts automatisch eine Urheberrechtsangabe hinzufügen – dabei werden sowohl Aktionen (Actions) als auch Filter (Filters) genutzt.

Empfohlene Lektüre Von Anfänger bis Experte: WordPress-Plugins entwickeln – eine Schritt-für-Schritt-Anleitung zum Erstellen benutzerdefinierter Funktionen.

// 使用过滤器修改文章内容
function myfp_add_copyright_to_content( $content ) {
    if ( is_single() ) {
        $copyright_text = '<p><em>Bitte geben Sie die Quelle an, wenn Sie etwas weiterverbreiten.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' );

// 使用动作在文章保存时执行操作
function myfp_log_post_publish( $post_id ) {
    // 记录日志或执行其他后处理
    error_log( "文章 ID {$post_id} 已发布。" );
}
add_action( 'publish_post', 'myfp_log_post_publish' );

Erstellen und bereitstellen Sie benutzerdefinierte Hooks für Erweiterungen.

Ein gut gestaltetes Plugin sollte es auch anderen Entwicklern ermöglichen, es zu erweitern. Dies kann durch die Erstellung eigener, benutzerdefinierter „Hooks“ (Verbindungsmechanismen) erreicht werden. Dadurch wird die Offenheit der Plugin-Architektur unterstrichen und gleichzeitig die Philosophie von WordPress selbst befolgt.

// 定义一个自定义动作钩子
function myfp_process_data() {
    $data = '一些初始数据';
    // 其他开发者可以通过 ‘myfp_before_action’ 在此处插入代码
    do_action( 'myfp_before_action', $data );

// 插件的主要处理逻辑...

// 其他开发者可以通过 ‘myfp_after_action’ 在此处插入代码
    do_action( 'myfp_after_action', $data );
}

// 定义一个自定义过滤器钩子
function myfp_get_output() {
    $output = '默认输出';
    // 允许其他开发者过滤最终的输出
    return apply_filters( 'myfp_filter_output', $output );
}

Erstellen einer Plugin-Verwaltungsoberfläche und von Einstellungsoptionen

Die meisten Plugins benötigen eine Backend-Oberfläche, über die der Benutzer Konfigurationen vornehmen kann. WordPress bietet verschiedene APIs an, die Ihnen dabei helfen, standardisierte Einstellungsseiten und Optionen schnell und sicher zu erstellen.

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.

Verwaltung der Sicherheitsoptionen mithilfe der Setup-API

Die WordPress-API für die Konfiguration dient als sicheres Framework zur Verarbeitung von Formularen, zur Überprüfung von Daten, zum Speichern sowie zum Ausgeben von Einstellungen. Sie kümmert sich automatisch um die Sicherheitsmerkmale wie das „nonce“-Feld sowie um die Überprüfung von Berechtigungen. Die grundlegenden Schritte zur Erstellung einer Konfigurationsseite sind: 1) Registrierung der Konfigurationseinstellungen, 2) Hinzufügen von Konfigurationsblöcken und 3) Hinzufügen von Einstellungsfeldern. Der folgende Code zeigt, wie man eine einfache Konfigurationseinstellung registriert:

function myfp_register_settings() {
    register_setting(
        'myfp_settings_group', // 选项组名
        'myfp_option_name',    // 选项名(存储在wp_options表中)
        array( 'sanitize_callback' => 'myfp_sanitize_callback' ) // 消毒回调函数
    );

add_settings_section(
        'myfp_settings_section', // 区块ID
        '基本设置',               // 区块标题
        'myfp_section_callback', // 区块回调函数(可输出描述)
        'myfp-settings-page'     // 设置页面Slug
    );

add_settings_field(
        'myfp_text_field',      // 字段ID
        '示例文本输入',         // 字段标签
        'myfp_text_field_callback', // 字段回调函数(输出HTML表单域)
        'myfp-settings-page',   // 页面Slug
        'myfp_settings_section' // 所属区块ID
    );
}
add_action( 'admin_init', 'myfp_register_settings' );

Erstellen von Menü- und Untermenü-Seiten an verschiedenen Positionen

Sie müssen den Link zur Einstellungsseite in das WordPress-Verwaltungsmenü hinzufügen. Verwenden Sie dazu…add_menu_page()Es ist möglich, ein oberes Menü zu erstellen und dieses zu verwenden.add_submenu_page()Es ist möglich, Untermenüs zu erstellen.

function myfp_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',        // 页面标题
        '我的插件',            // 菜单标题
        'manage_options',     // 权限能力
        'myfp-settings-page', // 菜单Slug
        'myfp_render_settings_page', // 渲染页面的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80                    // 菜单位置
    );

// 添加子菜单(指向同一个页面,但菜单标题不同)
    add_submenu_page(
        'myfp-settings-page', // 父菜单Slug
        '关于此插件',         // 页面标题
        '关于',              // 菜单标题
        'manage_options',    // 权限能力
        'myfp-about-page',   // 菜单Slug
        'myfp_render_about_page' // 渲染回调
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Die Callback-Funktion zur Anzeige der Seite mit benutzerdefinierten Einstellungen

myfp_render_settings_pageDie Callback-Funktion ist dafür verantwortlich, die HTML-Struktur der Einstellungsseite auszugeben. In dieser Funktion musst du eine bestimmte Funktion aufrufen.settings_fields()unddo_settings_sections()Geben Sie die von der Settings-API registrierten Felder aus.

function myfp_render_settings_page() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1>\n</h1>
        <form action="/de/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myfp_settings_group' );
            do_settings_sections( 'myfp-settings-page' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein Prozess, bei dem Kreativität in funktionale Lösungen umgewandelt wird. Der Erfolg hängt von einem klaren Verständnis der Grundstruktur, einer geschickten Anwendung der sogenannten „Hook-Mechanismen“ sowie von einer kontinuierlichen Betonung von Sicherheit und Benutzerfreundlichkeit ab. Angefangen bei der Einrichtung der Entwicklungsumgebung und der Erstellung der Hauptdateien, über die tiefe Integration von Aktionen und Filtern in WordPress bis hin zum Aufbau professioneller Verwaltungsschnittstellen mithilfe von APIs – jedes Schritt folgt festgelegten Standards und bewährten Praktiken. Entscheidend sind dabei die Modularität, Lesbarkeit und Erweiterbarkeit des Codes. Die Verwendung eindeutiger Präfixe verhindert Konflikte zwischen verschiedenen Komponenten, und Sicherheit steht stets an erster Stelle. Durch das Lernen und Üben dieser Anleitung verfügen Sie nun über die Fähigkeit, von Grund auf ein voll funktionsfähiges, standardskonformes WordPress-Plugin zu entwickeln.

FAQ Häufig gestellte Fragen

Welche Programmierkenntnisse sind für die Entwicklung eines WordPress-Plugins unter „###“ erforderlich?
Um WordPress-Plugins zu entwickeln, sind grundlegende Kenntnisse der PHP-Programmiersprache erforderlich – einschließlich der Syntax, Funktionen, Arrays sowie Konzepten der objektorientierten Programmierung. Ebenso ist ein grundlegendes Verständnis der Frontend-Technologien HTML, CSS und JavaScript von Vorteil, insbesondere bei der Entwicklung von Plugins mit Benutzeroberflächen. Es ist ebenfalls hilfreich, sich mit den grundlegenden Operationen der MySQL-Datenbank vertraut zu machen, da WordPress stark auf Datenbanken angewiesen ist.

Wie kann ich ein in Entwicklung befindliches WordPress-Plugin debuggen?

Es gibt verschiedene Methoden, um Plugins zu debuggen. Zunächst einmal…wp-config.phpDie Datei wurde geöffnet.WP_DEBUGundWP_DEBUG_LOGDies wird PHP-Fehler und Warnungen in die Protokolle aufnehmen./wp-content/debug.logDie Informationen befinden sich in der Datei, werden jedoch nicht an die Benutzer der Benutzeroberfläche angezeigt. Zweitens kann man die Entwicklertools des Browsers (z. B. Chrome DevTools) verwenden, um JavaScript-Code sowie Netzwerkanfragen zu debuggen. Bei komplexer Logik kann man zusätzliche Hilfsmittel einsetzen.var_dump()odererror_log()Die Funktion gibt den Wert der Variablen in die Protokolle oder auf die Seite aus. Darüber hinaus kann die Installation professioneller PHP-Debugger wie Xdebug sowie deren Integration in Ihren Code-Editor das Setzen von Breakpoints ermöglichen – dies ist die effizienteste Methode zum Debuggen.

Wie kann meine Erweiterung die Internationalisierung in mehreren Sprachen umsetzen?

Die Umsetzung der Internationalisierung (I18N) erfolgt hauptsächlich mithilfe der von WordPress bereitgestellten Funktionen.__()_e()_x()Verwenden Sie Übersetzungsfunktionen. Im Plugin-Code sollten alle zu übersetzenden Zeichenketten mit diesen Funktionen umschlossen werden, und der zugehörige Textbereich (Text Domain) muss angegeben werden – dieser wird in den Kommentaren am Anfang des Plugins definiert.Text DomainDann verwendet man Tools wie Poedit, um den Quellcode der Erweiterung zu scannen und die entsprechenden Daten zu generieren..potTemplate-Dateien – Anhand dieser erstellen Übersetzer die Texte in verschiedenen Sprachen..poUnd das kompilierte….moDateien. Schließlich sollten diese übersetzten Dateien in das Plugin eingefügt werden./languages/Im Verzeichnis befindet sich die Datei, und sie wird beim Initialisieren des Plugins verwendet.load_plugin_textdomain()Die Funktion lädt sie herunter.

Wie kann ich mein Plugin kostenlos im offiziellen WordPress-Plugin-Verzeichnis veröffentlichen?

Um ein Plugin im offiziellen WordPress-Verzeichnis zu veröffentlichen, müssen eine Reihe von Anforderungen erfüllt werden. Zunächst muss sichergestellt werden, dass Ihr Plugin vollständig der GPL v2 oder einer späteren Version entspricht. Außerdem ist es wichtig, die Codequalität sowie die Sicherheit zu gewährleisten und die WordPress-Programmierstandards einzuhalten. Danach müssen Sie ein Konto bei WordPress.org erstellen und das Plugin im Bereich “Entwickler” einreichen. Vor der Einreichung sollten Sie sicherstellen, dass das Plugin über eine detaillierte und gut strukturierte Dokumentation verfügt.readme.txtDie Datei ist in einem bestimmten Markdown-Format erstellt und die Internationalisierung wurde korrekt eingestellt. Nach der Einreichung wird das Plugin von einem Prüfteam überprüft – dieser Prozess kann einige Tage bis Wochen dauern. Sobald das Plugin die Überprüfung bestanden hat, kann es im offiziellen Verzeichnis gesucht und installiert werden.