WordPress-Plugin-Entwicklung von der Grundlage bis zur Meisterschaft: Erstellen Sie Ihr erstes funktionales Plugin

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

Warum sollte man sich mit der Entwicklung von WordPress-Plugins beschäftigen?

Als weltweit beliebtestes Content-Management-System (CMS) verdankt WordPress seine starke Erweiterbarkeit in hohem Maße der großen Anzahl an Plugins. Das Erlernen der Plugin-Entwicklung ermöglicht es Ihnen nicht nur, Funktionen nach eigenen Bedürfnissen anzupassen, sondern auch das Kernarchitekturkonzept von WordPress tiefer zu verstehen, Ihr technisches Können zu verbessern und Ihre Ideen sogar in veröffentlichte Produkte umzusetzen. Durch die Entwicklung eigener Plugins können Sie die Codequalität genau kontrollieren, die Sicherheit Ihrer Website gewährleisten und Kompatibilitätsprobleme, die durch die Verwendung von Drittanbieter-Plugins entstehen können, vermeiden.

Ein grundlegender WordPress-Plugin besteht im Wesentlichen aus einem oder mehreren PHP-Dateien, die sich in einem bestimmten Verzeichnis befinden. Es interagiert mit dem Kernsystem von WordPress mithilfe der umfangreichen APIs, die von WordPress bereitgestellt werden – wie z. B. Aktionshaken (Action Hooks), Filterhaken (Filter Hooks), Shortcodes und Widgets. Das Verständnis dieser Mechanismen ist eine Voraussetzung für die erfolgreiche Entwicklung jeglicher Plugins.

Vorbereitung der Entwicklungsumgebung und der Infrastruktur

Bevor Sie die erste Zeile Code schreiben, ist es von entscheidender Bedeutung, eine gute Entwicklungsumgebung einzurichten. Sie benötigen eine lokale Serverumgebung (z. B. XAMPP, Local by Flywheel oder DevKinsta), einen Code-Editor (z. B. VS Code oder PhpStorm) sowie eine installierte Version von WordPress zum Testen.

Empfohlene Lektüre Das ultimative Handbuch für die Entwicklung von WordPress-Plugins: Erkennen Sie die Kernprinzipien und arbeiten Sie an praktischen Projekten

Der Einstiegspunkt für ein Plugin ist eine Haupt-PHP-Datei. Die Kommentare am Anfang dieser Datei sind entscheidend dafür, dass WordPress das Plugin erkennt. Zuerst erstellen wir die Grundstruktur des Plugins.

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 Hauptdatei des Plugins.

Die Hauptdatei eines Plugins wird in der Regel nach dem Namen des Plugins benannt. Zum Beispiel: Wenn wir ein Plugin mit dem Namen “Mein erstes Plugin” erstellen, kann die Hauptdatei „my_first_plugin.js“ heißen.my-first-plugin.phpDieses Datei muss an folgender Stelle platziert werden:/wp-content/plugins/my-first-plugin/Im Verzeichnis.

Der Datei-Anfang muss standardisierte Kommentare mit Informationen zu den Plugins enthalten. Hier ist ein sehr einfaches Beispiel:

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

Nachdem Sie die Datei gespeichert haben, gehen Sie zur “Plugins”-Seite im WordPress-Backend. Dort sollten Sie das neue Plugin in der Liste der Plugins sehen und es aktivieren können. Derzeit verfügt das Plugin noch über keine Funktionen, aber die grundlegende Struktur ist bereits erstellt.

Erstellen Sie die grundlegende Verzeichnisstruktur für das Plugin.

Ein klar strukturiertes Plugin erleichtert die langfristige Wartung. Es wird empfohlen, die folgenden Verzeichnisse zu erstellen:
* /assets/Dient zum Speichern von statischen Ressourcen wie CSS, JavaScript und Bildern.
* /includes/Dient zum Speichern der wichtigsten PHP-Klasse-Dateien sowie der Funktionen-Dateien.
* /languages/Dient zum Speichern von internationalisierten Übersetzungsdateien (.po/.mo).

Empfohlene Lektüre Die Essenz des Prinzips von Tailwind CSS: Enthüllung der Arbeitsweise des praktikorientierten, atomisierten CSS-Frameworks

Hauptdateimy-first-plugin.phpDie Plugin-Initialisierung sollte ausschließlich die Verantwortung des Plugins tragen – beispielsweise die Definition von Konstanten, das Einbinden anderer Dateien sowie das Registrieren von Hook-Funktionen.

Implementierung der Kernfunktionen: Erstellung und Verwaltung von Menüs sowie Seiten

Eine häufige Funktion von Plugins besteht darin, eine Verwaltungs-Menüseite im WordPress-Backend hinzuzufügen. Wir werden dies mithilfe der “Menüseite-API” von WordPress umsetzen.

Hinter dem Bildschirm ein oberes Menü hinzufügen.

Wir müssen es verwenden.add_menu_page()Funktion. Diese Funktion wird normalerweise in…admin_menuDieser Aktionshook wird aufgerufen, wenn er ausgelöst wird. Fügen wir den folgenden Code in die Hauptdatei hinzu:

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 mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置',         // 页面标题
        '我的插件',            // 菜单标题
        'manage_options',      // 所需权限
        'my-first-plugin',     // 菜单slug
        'mfp_display_settings_page', // 用于显示页面内容的回调函数
        'dashicons-admin-generic', // 菜单图标(Dashicon)
        6                      // 菜单位置
    );
}
// 将函数挂载到 `admin_menu` 钩子上
add_action('admin_menu', 'mfp_add_admin_menu');

Erstellen Sie die Anzeigeinhalte für die Einstellungsseite.

Im obigen Code…mfp_display_settings_pageEs handelt sich um eine Callback-Funktion, die für die Ausgabe des HTML-Inhalts der Einstellungsseite verantwortlich ist. Wir müssen diese Funktion definieren:

// 设置页面的显示内容
function mfp_display_settings_page() {
    // 检查用户权限
    if (!current_user_can('manage_options')) {
        wp_die(__('你没有权限访问此页面。'));
    }
    ?&gt;
    <div class="wrap">
        <h1>&lt;?php echo esc_html(get_admin_page_title()); ? &lt;?php echo esc_html(get_admin_page_title(); ?</h1>
        <form action="/de/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段和安全nonce字段
            settings_fields('mfp_options_group'); // 设置组的名称
            do_settings_sections('my-first-plugin'); // 页面slug
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Dieser Code erstellt einen standardmäßigen Rahmen für eine WordPress-Einstellungsseite, wobei im Inneren…settings_fields()unddo_settings_sections()Das bedeutet, dass wir die WordPress Settings API verwenden werden, um unsere Optionen zu verwalten – dies ist die sicherste und standardisierteste Methode.

Verwenden Sie die Settings-API, um die Optionen der Plugins zu verwalten.

Direkte Bearbeitung$_POSTDie Daten bergen Sicherheitsrisiken. Die WordPress Settings API übernimmt die Überprüfung der Daten, die Sicherheitsmaßnahmen sowie die Speicherung für uns und ist die bevorzugte Methode zur Verwaltung von Plugin-Einstellungen.

Empfohlene Lektüre Die ultimative Anleitung für das WooCommerce-Plugin: Aufbau einer professionellen, grenzüberschreitenden E-Commerce-Website von Grund auf

Registrierungseinstellungen, Felder und Abschnitte

Wir müssen…admin_initInitialisieren wir unsere Einstellungen in der „Hook“-Funktion. Zuerst verwenden wir…register_setting()Registrieren Sie eine Einstellungsoption.

function mfp_register_settings() {
    // 注册一个设置:`mfp_options` 是存储在`wp_options`表中的键名
    register_setting(
        'mfp_options_group', // 设置组名,需与`settings_fields()`参数一致
        'mfp_options',       // 选项名
        'mfp_sanitize_options' // 可选:数据清洗回调函数
    );

// 添加一个设置章节
    add_settings_section(
        'mfp_main_section',                // 章节ID
        '主要设置',                         // 章节标题
        'mfp_main_section_callback',       // 章节介绍的回调函数
        'my-first-plugin'                  // 所属页面slug
    );

// 在章节中添加一个文本字段
    add_settings_field(
        'mfp_text_field',                  // 字段ID
        '示例文本',                         // 字段标签
        'mfp_text_field_callback',         // 用于渲染字段HTML的回调函数
        'my-first-plugin',                 // 所属页面slug
        'mfp_main_section'                 // 所属章节ID
    );
}
add_action('admin_init', 'mfp_register_settings');

Definition der Funktionen zur Darstellung und Reinigung von Feldwerten

Jetzt müssen wir die oben genannten Callback-Funktionen definieren, die zur Ausgabe der HTML-Strukturen der Felder sowie zur Reinigung der Daten verwendet werden.

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.
// 主章节的描述文本
function mfp_main_section_callback() {
    echo '<p>Hier befindet sich der Hauptbereich für die Einstellungen der Plugins.</p>';
}

// 文本字段的HTML输出
function mfp_text_field_callback() {
    // 从数据库获取现有值
    $options = get_option('mfp_options');
    $value = $options['mfp_text_field'] ?? ''; // PHP 7.0+ 空合并运算符
    echo '<input type="text" name="mfp_options[mfp_text_field]" value="' . esc_attr($value) . '" class="regular-text">';
}

// 数据清洗函数(可选但推荐)
function mfp_sanitize_options($input) {
    $sanitized_input = [];
    if (isset($input['mfp_text_field'])) {
        // 对文本字段进行基本的清洗,如去除标签
        $sanitized_input['mfp_text_field'] = sanitize_text_field($input['mfp_text_field']);
    }
    return $sanitized_input;
}

Damit ist ein vollständiges Plugin mit einer Seite für Sicherheitseinstellungen fertiggestellt. Nach der Aktivierung des Plugins können Sie im WordPress-Backend das Menü “Meine Plugins” sehen. Durch Klicken darauf können Sie eine Textoption einstellen und speichern. Alle Daten werden sicher über die WordPress-API gespeichert.wp_optionsIn der Tabelle.

Für das Plugin werden Frontend-Funktionen hinzugefügt: Die Erstellung von Shortcodes.

Die Backend-Funktionen sind die Grundlage – doch Plugins müssen in der Regel auch die Frontend-Struktur der Website beeinflussen. Die Erstellung von Shortcodes ist eine hervorragende Methode, um die Funktionen eines Plugins in Artikeln, Seiten oder Widgets darzustellen.

Registrieren Sie einen einfachen Shortcode.

Wir registrieren einen Namen, der …[my_greeting]Der Kurzcode dient dazu, eine Begrüßung auf der Frontend-Seite anzuzeigen.add_shortcode()Funktion.

Fügen Sie dies entweder in die Hauptdatei oder in eine spezielle Funktionssdatei hinzu:

// 注册短代码
function mfp_greeting_shortcode($atts, $content = null) {
    // 使用shortcode_atts设置默认属性并合并用户输入
    $atts = shortcode_atts(
        array(
            'name' =&gt; '访客', // 默认值
        ),
        $atts,
        'my_greeting' // 短代码名称
    );

// 获取插件选项中存储的文本
    $options = get_option('mfp_options');
    $custom_text = $options['mfp_text_field'] ?? '';

// 构造输出
    $output = '<div class="mfp-greeting">'$output .= '<p>Hallo, '. esc_html($atts['name']) . '! Willkommen auf unserer Website.</p>';
    if (!empty($custom_text)) {
        $output .= '<p><strong>Benutzerdefinierte Nachricht:</strong>'. esc_html($custom_text)'.'</p>'$output = '</div>';

// 返回输出内容,而不是直接echo
    return $output;
}
add_shortcode('my_greeting', 'mfp_greeting_shortcode');

Jetzt können Benutzer in der Artikel-Editor-Software Text eingeben.[my_greeting name="张三"]Die Frontend-Software rendernt dann personalisierte Begrüßungsnachrichten an, und falls im Backend ein “Beispieltext” definiert ist, wird dieser ebenfalls angezeigt. Auf diese Weise werden die Einstellungen des Backends effektiv mit der Ausgabe der Frontend-Software verbunden.

Zusammenfassungen

Durch die oben genannten Schritte haben wir einen WordPress-Plugin mit vollständigen Funktionen fertiggestellt. Wir haben von Grund auf angefangen, die grundlegenden Dateien und die Struktur des Plugins erstellt und dabei…add_menu_page()Eine sichere Backend-Einstellungsseite wurde mithilfe der Settings-API erstellt und über … (der genaue Weg bzw. die Methode wird hier nicht angegeben) bereitgestellt.add_shortcode()Die Frontend-Funktionen wurden implementiert. Dieser Prozess umfasst die Kernschritte der Plugin-Entwicklung: Planung, Initialisierung, Integration der Backend-APIs, Datenverarbeitung sowie die Bereitstellung von Frontend-Schnittstellen.

Nachdem du diese Grundlagen gut verstanden hast, kannst du weitere fortgeschrittene Themen erkunden, wie die Erstellung benutzerdefinierter Artikeltypen, Metadaten (Meta Box), benutzerdefinierter Datenbanktabellen, REST API-Endpunkte, AJAX-Verarbeitung sowie die Internationalisierung von Plugins. Denke daran: Die Einhaltung der WordPress-Programmierstandards und -Best Practices ist der Schlüssel zur Entwicklung hochwertiger, wartungsfreundlicher Plugins.

FAQ Häufig gestellte Fragen

Welche PHP-Kenntnisse sind für die Entwicklung von Plugins erforderlich?

Es ist zumindest erforderlich, die Grundlagen der PHP-Sprache zu beherrschen – einschließlich Variablen, Arrays, Funktionen, bedingter Anweisungen und Schleifen. Kenntnisse im Objektorientierten Programmieren (OOP) sind bei der Entwicklung von mittelgroßen bis großen Plugins sehr hilfreich. Darüber hinaus muss man verstehen, wie WordPress Plugins lädt, sowie wie globale Variablen und Funktionen sicher verwendet werden können.

Wie man ein von einem selbst entwickeltes WordPress-Plugin debuggt?

Zunächst stellen Sie sicher, dass aufwp-config.phpDie Datei wurde geöffnet.WP_DEBUGundWP_DEBUG_LOGAuf diese Weise werden Fehlermeldungen in die Protokolldatei geschrieben. Zweitens kann man…error_log()Die Funktion gibt Debugging-Informationen aus. Für komplexe Logiken können professionelle Debugging-Tools wie Xdebug verwendet werden, um den Code schrittweise auszuführen.

Wie kann man bei der Entwicklung von Plugins für deren Sicherheit sorgen?

Stellen Sie immer die Eingaben der Benutzer überprüft und bereinigt. Verwenden Sie dazu die eingebauten Funktionen von WordPress.esc_html(), esc_attr(), sanitize_text_field()undwp_kses()Verwenden Sie nicht-CE-Methoden, um die Ausgabe zu verarbeiten.wp_nonce_field()Diese Maßnahmen dienen dazu, das Phänomen des Cross-Site Request Forgery (CSRF) zu verhindern. Für Datenbankoperationen wird…$wpdbDie von der Klasse bereitgestellten Methoden können verwendet werden.prepare()Um SQL-Injectionen zu verhindern, werden spezielle Sicherheitsmaßnahmen ergriffen. Dazu gehören unter anderem:

Sollten Plugins lokal auf dem Rechner oder auf einem Online-Server entwickelt werden?

Es wird dringend empfohlen, die Hauptentwicklungsarbeiten in einer lokalen Entwicklungsumgebung (z. B. Local, XAMPP) durchzuführen. Die lokale Umgebung reagiert schnell, ist nicht von der Netzwerkverbindung abhängig und ermöglicht es, beliebig Tests durchzuführen – ohne dass dies die Online-Website beeinträchtigt. Erst nach Abschluss der grundlegenden Funktionalitäten sollte die Anwendung in eine Online-Testumgebung deployt werden, um die endgültige Kompatibilität zu überprüfen.

Wie kann ich meine eigene Erweiterung (Plugin) im offiziellen WordPress-Verzeichnis veröffentlichen?

Sie müssen auf WordPress.org zugreifen, ein Entwicklerkonto registrieren und Ihren Plugin-Code über Subversion (SVN) einreichen. Der Plugin muss den offiziellen Codestandards sowie Anforderungen zur Verzeichnisstruktur entsprechen und die erforderlichen Elemente enthalten.readme.txtNach der Genehmigung der Überprüfung können Nutzer weltweit direkt im Hintergrund nach deinem Plugin suchen und es installieren.