Einführung in die WordPress-Plug-in-Entwicklung von Anfänger bis Fortgeschrittener: Erstellen Sie Ihre erste Funktionserweiterung von Grund auf.

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

Einführung in die WordPress-Plug-in-Entwicklung von Anfänger bis Fortgeschrittener: Erstellen Sie Ihre erste Funktionserweiterung von Grund auf.

Die Grundstruktur und die Dateiorganisation von WordPress-Plugins

Ein standardisiertes WordPress-Plugin besteht in der Regel aus einer Hauptdatei. Die Benennung dieser Hauptdatei ist von großer Bedeutung und entspricht in der Regel dem Namen des Verzeichnisses, in dem sich das Plugin befindet. Zum Beispiel könnte die Hauptdatei eines Plugins mit dem Namen “my-awesome-plugin” so genannt werden…my-awesome-plugin.phpIn diesem File sind die Kommentare am Anfang des Plugins unerlässlich, da sie dem WordPress-System die grundlegenden Informationen über das Plugin liefern.

/**
 * Plugin Name:      我的第一个插件
 * Plugin URI:       
 * Description:      这是一个用于演示的WordPress插件。
 * Version:          1.0.0
 * Author:           你的名字
 * License:          GPL v2 or later
 * Text Domain:      my-first-plugin
 */

Es wird empfohlen, den Verzeichnisnamen des Plugins auf eine einzigartige Weise zu wählen, um Konflikte mit bereits vorhandenen Plugins zu vermeiden, und das Verzeichnis an einer geeigneten Stelle abzulegen./wp-content/plugins/Im Verzeichnis befinden sich neben der Haupt-PHP-Datei auch weitere Ordner. Dazu gehören der Ordner „assets“, in dem JavaScript- und CSS-Dateien gespeichert werden können, der Ordner „languages“ für die Internationalisierung sowie der Ordner „templates“ für Vorlagen. Eine klare Struktur der Dateien erleichtert die Verwaltung und den Austausch von Inhalten.includes/Verwendet für Kernklassen und -funktionen.admin/Für die Backend-Logik verwendet…public/Zur Frontend-Logik verwendet – verbessert die Wartbarkeit des Plugins erheblich.

Empfohlene Lektüre Das ultimative Handbuch für die Entwicklung von WordPress-Plugins: Erstellen Sie Ihr erstes benutzerdefiniertes Plugin von Grund auf

Implementierung der Kernfunktionen des Plugins

Die Stärke von WordPress-Plugins liegt in ihrem flexiblen System von Aktionshaken (Action Hooks) und Filtern (Filters). Aktionshaken ermöglichen es dir, benutzerdefinierten Code zu bestimmten Zeitpunkten auszuführen – beispielsweise nach der Veröffentlichung eines Artikels oder beim Laden des Verwaltungsmenüs. Filter hingegen ermöglichen es dir, die während des Prozesses übergebenen Daten zu ändern.

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.

Eine häufige Anwendung ist das automatische Hinzufügen von Text am Ende eines Artikelinhalts. Dies kann durch verschiedene Methoden erreicht werden…the_contentDie Filter werden mithilfe von Funktionen implementiert. Im Hauptdatei des Plugins kannst du eine solche Funktion definieren und sie anschließend verwenden.add_filterDie Funktion montiert es auf den Filter.

function myplugin_add_footer_text( $content ) {
    if ( is_single() ) {
        $custom_text = '<p><em>Die Fußnoteninformationen wurden automatisch von meinem Plugin generiert.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_add_footer_text' );

Eine weitere zentrale Funktion ist die Erstellung von Verwaltungsebenen. WordPress bietet eine umfangreiche Reihe von Funktionen, mit denen Menüeinträge und Seiten im Hintergrund hinzugefügt werden können. Sie können diese Funktionen gerne nutzen.add_menu_page()oderadd_submenu_page()Eine Funktion wird verwendet, um eine Seite zu definieren. Dieser Prozess umfasst in der Regel zwei Schritte: Zunächst werden Menüeinträge registriert, und anschließend wird die Callback-Funktion für diese Menüseite definiert, um die HTML-Inhalte auszugeben.

function myplugin_add_admin_page() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单别名
        'myplugin_admin_page_html', // 回调函数
        'dashicons-admin-generic', // 图标
        20 // 位置
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_page' );

function myplugin_admin_page_html() {
    // 检查用户权限
    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( 'myplugin_options' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Plugin-Einstellungen und Optionenverarbeitung

Um Plugins flexibel und konfigurierbar zu gestalten, ist es üblich, eine Einstellungsseite bereitzustellen. WordPress bietet eine systematisierte Einstellungs-API, die es ermöglicht, Einstellungen sicher zu registrieren, zu speichern und zu überprüfen.

Zuerst musst du verwenden…register_setting()Eine Funktion wird verwendet, um eine Reihe von Einstellungen zu registrieren. Anschließend werden diese Einstellungen genutzt.add_settings_section()Fügen Sie einen Einstellungsblock hinzu und verwenden Sie ihn.add_settings_field()Fügen Sie in diesem Block die konkreten Einstellungsfelder hinzu. Diese Arbeiten werden in der Regel…admin_initAbgeschlossen im Hook.

Empfohlene Lektüre Analyse der WordPress-Plugin-Entwicklung: Ein umfassender Leitfaden zur Erstellung benutzerdefinierter Funktionsmodule von Grund auf

function myplugin_settings_init() {
    // 注册一个新设置
    register_setting( 'myplugin_options', 'myplugin_settings', 'myplugin_sanitize' );

    // 添加一个设置区块
    add_settings_section(
        'myplugin_section_general',
        '通用设置',
        'myplugin_section_general_cb',
        'myplugin-settings'
    );

    // 添加一个文本字段
    add_settings_field(
        'myplugin_field_footer_text',
        '自定义尾部文本',
        'myplugin_field_footer_text_cb',
        'myplugin-settings',
        'myplugin_section_general',
        [ 'label_for' => 'myplugin_field_footer_text' ]
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

// 字段渲染回调函数
function myplugin_field_footer_text_cb() {
    $options = get_option( 'myplugin_settings' );
    ?>
    <input type="text" id="myplugin_field_footer_text" name="myplugin_settings[footer_text]" value="<?php echo esc_attr( $options['footer_text'] ?? '' ); ?>" class="regular-text">
    <?php
}

// 数据清理回调函数
function myplugin_sanitize( $input ) {
    $sanitized = [];
    if ( isset( $input['footer_text'] ) ) {
        $sanitized['footer_text'] = sanitize_text_field( $input['footer_text'] );
    }
    return $sanitized;
}

Auf der Frontend-Seite können Sie dies durch folgende Schritte erreichen:get_option('myplugin_settings')Die gespeicherten Optionen werden als Array abgerufen, und diese Werte werden in Ihrer Funktionslogik verwendet.

Plugin-Sicherheit und Best Practices

Es ist wichtig, einen Plugin zu entwickeln, der öffentlich verteilt oder in einer Produktionsumgebung eingesetzt werden kann, wobei die Sicherheit die oberste Priorität hat. Alle Daten, die von Benutzern oder unzuverlässigen Quellen stammen, müssen überprüft, gereinigt und entschärft werden.

„Validation“ bezeichnet die Überprüfung, ob Daten vor der Verarbeitung dem erwarteten Format entsprechen, beispielsweise mithilfe bestimmter Verfahren.filter_var()E-Mail-Verifizierung. Bei der Sanitierung (Bereinigung) handelt es sich um das Entfernen unerwünschter oder gefährlicher Zeichen aus Daten. WordPress bietet dazu verschiedene Funktionen.sanitize_text_field()sanitize_email()wp_kses_post()Es gibt zahlreiche Funktionen zur Reinigung von Daten. Das Ausgeben von Daten in HTML, JavaScript oder URLs muss sicher kodiert werden, um XSS-Angriffe zu verhindern. Dazu sollte die sogenannte „Escape-Methode“ verwendet werden.esc_html()esc_attr()esc_url()undwp_json_encode()Zum Beispiel können Sie die folgenden Funktionen verwenden:

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%

Wenn Sie in einem Plugin auf Nicht-CE-(AJAX-)Anfragen reagieren, müssen Sie diese unbedingt überprüfen.nonce(Die Zahl wird nur einmal verwendet) Um die Legitimität der Anfrage zu überprüfen sowie die aktuellen Berechtigungen (Fähigkeiten) des Benutzers zu überprüfen.

// PHP端:生成nonce并输出到页面
wp_nonce_field( 'myplugin_ajax_action', 'myplugin_nonce' );

// JavaScript端:随AJAX请求发送nonce
jQuery.ajax({
    url: ajaxurl,
    type: 'POST',
    data: {
        action: 'myplugin_ajax_handler',
        nonce: jQuery('#myplugin_nonce').val(),
        // ... 其他数据
    }
});

// PHP端:处理AJAX请求时验证
function myplugin_ajax_handler() {
    check_ajax_referer( 'myplugin_ajax_action', 'nonce' );
    if ( ! current_user_can( 'edit_posts' ) ) {
        wp_die( '权限不足' );
    }
    // ... 处理安全请求
}
add_action( 'wp_ajax_myplugin_ajax_handler', 'myplugin_ajax_handler' );

Darüber hinaus werden die WordPress-Codestandards eingehalten und eine umfassende Internationalisierungsunterstützung bereitgestellt (mit der Verwendung von …).__()und_e()Funktionen, und verwenden Sie sie…load_plugin_textdomain()Laden der Übersetzungsdateien sowie die notwendige Bereinigung von Ressourcen, wenn das Plugin deaktiviert wird (z. B. durch…)register_uninstall_hook()Optionen zur Löschung von Datenbanken sind ebenfalls unverzichtbare Best Practices in der Entwicklung professioneller Plugins.

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein Prozess, bei dem benutzerdefinierte Funktionen nahtlos in die umfassende CMS-Ökologie integriert werden. Sie beginnt mit einem strukturierten Verzeichnis der Plugins sowie einer Hauptdatei, die die richtigen Kopfzeilen-Anmerkungen enthält. Der Schlüssel liegt darin, die Action- und Filter-Hooks geschickt zu nutzen, um das Standardverhalten von WordPress zu erweitern, und durch Verwaltungsseiten sowie die Settings-API eine benutzerfreundliche Konfigurationsoberfläche bereitzustellen. Während des gesamten Prozesses muss die Sicherheit an erster Stelle stehen – dies gilt insbesondere für die Datenüberprüfung, die Datenbereinigung, das Entschlüsseln sowie die Berechtigungsüberprüfung. Die Einhaltung von Best Practices wie Internationalisierung und Kodierstandards sorgt dafür, dass Ihr Plugin stabil, sicher und leicht zu warten ist und somit zuverlässig auf Millionen von Webseiten genutzt werden kann.

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

FAQ Häufig gestellte Fragen

Welche Vorkenntnisse sind erforderlich, um WordPress-Plugins zu entwickeln?

Sie sollten über eine solide Grundlage in der PHP-Programmierung verfügen. Ein Verständnis der Konzepte der objektorientierten Programmierung (OOP) wird von großem Vorteil sein. Zudem ist ein grundlegendes Wissen über HTML, CSS und JavaScript erforderlich, um die Frontend-Präsentation und -Interaktion zu bewältigen. Am wichtigsten ist es, sich mit den Kernkonzepten von WordPress vertraut zu machen, einschließlich Hooks, der Options-API, Benutzerrollen und -rechten sowie der Datenbankstruktur.

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

Zunächst stellen Sie sicher, dass aufwp-config.phpDie Funktion wurde im File aktiviert.WP_DEBUGundWP_DEBUG_LOGDies wird die Fehlermeldung in die Protokolle aufnehmen./wp-content/debug.logDie Datei befindet sich innerhalb des Systems und wird nicht an die Benutzer der Benutzeroberfläche angezeigt.

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.

Mit Tools wie dem Query Monitor-Plugin können Sie Datenbankabfragen, Ausführungen von „Hooks“, PHP-Fehler sowie Leistungsdaten in Echtzeit überwachen. Für die logische Fehlersuche kann dies zusätzlich genutzt werden.error_log()Funktionen sowie professionelle PHP-Debugger wie Xdebug ermöglichen eine schrittweise Verfolgung des Ablaufs des Programms.

Wie sollte ich benutzerdefinierte Datenbanktabellen zu meinem Plugin hinzufügen?

Custom Tabellen sollten nur dann hinzugefügt werden, wenn die Struktur der WordPress-Kerndatentabellen die Anforderungen nicht erfüllen kann. Sie können Tabellen erst bei Aktivierung eines Plugins erstellen, was in der Regel durch die Registrierung einer Funktion erfolgt, die bei der Aktivierung des Plugins ausgeführt wird.

In dieser Funktion wird… verwendet.dbDelta()Eine Funktion, die es ermöglicht, die Tabellenstruktur sicher zu erstellen oder zu aktualisieren. Diese Funktion benötigt die vollständigen…CREATE TABLE Die SQL-Anweisungen werden sehr sorgfältig formuliert, und auch Änderungen an der Tabellenstruktur werden mit Bedacht behandelt. Die benötigten SQL-Anweisungen können über globale Variablen bereitgestellt werden.$wpdbAusführen.

Wie kann ich meine Erweiterung so gestalten, dass sie mehrere Sprachen unterstützt (internationalisiert wird)?

Zunächst definieren Sie die entsprechenden Konstanten oder Variablen in den Kommentaren am Anfang der Hauptdatei des Plugins.Text DomainUnd verwenden Sie dies beim Laden des Plugins.load_plugin_textdomain()Die Funktion lädt die Übersetzungsdateien. In allen Plugins werden alle zu übersetzenden Zeichenketten verwendet…__()(Oder)_e()Die Funktion wird „verpackt“ (also in eine geeignete Struktur umgewandelt). Danach kannst du Tools wie Poedit verwenden, um die generierten Inhalte weiter zu bearbeiten..potTemplate-Dateien, die es Übersetzern ermöglichen, Übersetzungen für eine bestimmte Sprache zu erstellen..pound.moDokumente.