Von Grund auf: Erstellen Sie Ihr erstes WordPress-Plugin

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

Von Grund auf: Erstellen Sie Ihr erstes WordPress-Plugin

Die Entwicklung von WordPress-Plugins ist eine zentrale Methode zur Erweiterung der Kernfunktionen von WordPress. Durch die Erstellung von Plugins können Entwickler Websites mit benutzerdefinierten Funktionen ausstatten, ohne das Design oder die Kern-Dateien ändern zu müssen, was die Unabhängigkeit und Übertragbarkeit der Funktionen gewährleistet. Ein Standard-Plugin besteht normalerweise aus einer Haupt-PHP-Datei, optionalen Ressourcendateien (wie CSS, JavaScript) und Sprachpaketen. Das Verständnis der grundlegenden Struktur eines Plugins ist der erste Schritt zum erfolgreichen Entwickeln.

Die grundlegende Struktur und Erstellung von WordPress-Plugins

Die grundlegendste Form eines Plugins ist ein Element, das in einem/wp-content/plugins/Der Ordner im Verzeichnis. Dieser Ordner muss mindestens eine Haupt-PHP-Datei enthalten, deren Kopfkommentar zum Zweck der Anzeige von Plugin-Informationen in WordPress verwendet wird.

Die Erstellung von Kommentaren im Plugin-Header

Jede Hauptdatei eines Plugins muss mit einem bestimmten PHP-Kommentarblock beginnen, der als Plugin-Header bezeichnet wird. WordPress identifiziert und zeigt Ihr Plugin in der Plugin-Liste im Administrationsbereich an, indem es diese Informationen liest. Ein Standard-Header-Kommentar sieht wie folgt aus:

Empfohlene Lektüre Tiefgehende Analyse der WordPress-Plug-in-Entwicklung: vom Einstieg bis hin zu effizienter Anpassung.

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

Darunter befinden sichPlugin NameDies ist erforderlich, während die anderen Felder optional sind. Allerdings wird empfohlen, alle Felder so vollständig wie möglich auszufüllen, um die Integrität und Professionalität des Plugins zu gewährleisten.Text DomainDient der Internationalisierung und bildet die Grundlage für die Übersetzung zukünftiger 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.

Erstellung der Hauptdatei und des Verzeichnisses für das Plugin

Zunächst einmal…/wp-content/plugins/Erstellen Sie einen neuen Ordner im Verzeichnis, z. B.my-first-pluginDanach erstellen Sie in diesem Ordner die Haupt-PHP-Datei, die in der Regel den gleichen Namen wie der Ordner trägt:my-first-plugin.phpSchreiben Sie die oben genannte Kopfzeilen-Anmerkung in diese Datei, speichern Sie sie, und Sie können sie auf der “Plugins”-Seite im WordPress-Backoffice sehen und aktivieren. Zu diesem Zeitpunkt hat sie noch keine Funktionen.

Kernentwicklungskonzepte: Aktions-Hooks und Filter

Das Plugin-Framework von WordPress basiert auf einem “Hooks”-System, das die Schnittstelle zwischen Plugins und dem Kern darstellt. Hooks werden hauptsächlich in zwei Kategorien unterteilt: Aktion-Hooks und Filter-Hooks.

Das Verständnis und die Verwendung von Aktions-Hooks

Aktions-Hooks ermöglichen es Ihnen, benutzerdefinierten PHP-Code zu einem bestimmten Zeitpunkt oder bei einem bestimmten Ereignis auszuführen. Sie können dies mit folgendem Code tun:add_action()Die Funktion “hängt” Ihre Funktion an einen Hook. Beispielsweise kann dadurch automatisch ein Text am Ende eines Artikels hinzugefügt werden:

function myplugin_add_footer_text( $content ) {
    if ( is_single() ) {
        $content . = '<p>Vielen Dank fürs Lesen!</p>';
    }
    return $content.
}
add_filter( 'the_content', 'myplugin_add_footer_text' );

Achtung, in diesem Beispiel werden tatsächlich Filter-Hooks verwendet, um den Inhalt zu ändern. Ein typisches Beispiel für einen Aktion-Hook ist das Hinzufügen eines Menüs im Administrationsbereich:

Empfohlene Lektüre Lernen Sie WordPress-Plugins von Grund auf entwickeln: Erstellen Sie Ihre erste benutzerdefinierte Funktion

function myplugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置',
        '我的插件',
        'manage_options',
        'myplugin-settings',
        'myplugin_settings_page'
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Hier,add_action()„Wechseln Sie die Funktion“myplugin_add_admin_menuAngebunden anadmin_menuDieser Aktions-Hook wird von WordPress aufgerufen, wenn das Backend-Menü erstellt wird.

Das Verständnis und die Verwendung von Filter-Haken

Filter-Hooks werden verwendet, um die Daten zu ändern, die WordPress während des Verarbeitungsprozesses erzeugt. Sie können dazuadd_filter()Verwenden Sie eine Funktion, um Ihre Funktion zu mounten. Der Filter-Function erhält den Eingabewert, modifiziert ihn und muss dann den modifizierten Wert zurückgeben. Beispielsweise zur Änderung des Artikel-Titels:

function myplugin_modify_title( $title ) {
    return '精选: ' . $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );

Die Filter sind sehr leistungsfähig und werden häufig verwendet, um Suchergebnisse, Textinhalte, Optionenwerte und fast alle von WordPress generierten Daten zu ändern.

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%

Fügen Sie der Erweiterung eine Einstellungsseite und Optionen hinzu.

Ein voll funktionsfähiges Plugin muss Benutzern in der Regel Konfigurationsoptionen bieten. WordPress stellt eine Einstellungs-API zur Verfügung, um Optionenseiten sicher und standardisiert zu erstellen.

Erstellung eines Verwaltungsmenüs und von Seiten

Zuerst musst du verwenden…add_menu_page()oderadd_options_page()Wir verwenden Funktionen wie add_menu_page und add_submenu_page, um eine Verwaltungsseite hinzuzufügen. Wir hängen diese Aktion normalerweise anadmin_menuAuf dem Haken, wie im vorherigen Beispiel gezeigt. Darunter,myplugin_settings_pageEs handelt sich um eine Rückruffunktion, die zum Rendern des HTML-Inhalts der Einstellungsseite verwendet wird.

Verwenden Sie die Settings-API, um Optionen zu registrieren.

Die Einstellungs-API bietet eine sichere Möglichkeit, Einstellungen zu registrieren, zu überprüfen und zu speichern. Die wichtigsten Schritte hierbei sind: die Verwendung vonregister_setting()Registrieren Sie eine Einstellungsgruppe und verwenden Sie sie.add_settings_section()Fügen Sie einen Einstellungsblock hinzu und verwenden Sie ihn.add_settings_field()Fügen Sie spezifische Einstellungsfelder hinzu.

Empfohlene Lektüre Die vollständige Anleitung zur Entwicklung von WordPress-Plugins: Ein praktischer Leitfaden von den Grundlagen bis hin zur Expertenebene

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

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

    // 添加一个设置字段
    add_settings_field(
        'myplugin_field_text',
        '欢迎语',
        'myplugin_field_text_cb',
        'myplugin-settings',
        'myplugin_section_general',
        [ 'label_for' => 'myplugin_field_text' ]
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

Anschließend müssen Sie die entsprechenden Callback-Funktionen schreiben.myplugin_section_general_cbundmyplugin_field_text_cbGeben Sie den HTML-Eingabefeld für die Blockbeschreibung und die Felder aus. Abschließend, inmyplugin_settings_pageIn der Funktion wird Folgendes verwendet:settings_fields()unddo_settings_sections()Eine Funktion, um das gesamte Formular auszugeben.

Plugin-Sicherheit und Best Practices

Bei der Entwicklung von Plugins ist Sicherheit der oberste Gesichtspunkt. Ein unsicheres Plugin kann die gesamte Website gefährden.

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.

Datenvalidierung, -bereinigung und -vermeidung

Vertrauen Sie niemals Benutzereingaben oder Daten aus Datenbanken. Bei der Verarbeitung jeglicher Eingaben (z. B. $_POST, $_GET) müssen diese validiert und bereinigt werden. WordPress bietet eine Vielzahl von Funktionen, wie z. B.sanitize_text_field(), intval(), wp_kses()usw. Beim Ausgeben von Daten in HTML oder JavaScript müssen diese entweder entkommen oder mit Funktionen wieesc_html(), esc_attr(), esc_js()undwp_json_encode()

// 接收、清理并保存数据
$user_input = sanitize_text_field( $_POST['my_field'] );
update_option( 'my_option', $user_input );

// 安全地输出数据
echo esc_html( get_option( 'my_option' ) );

Die Verwendung von nicht-CE und Berechtigungsprüfungen

Für alle im Hintergrund durchgeführten Formularübermittlungen oder AJAX-Anfragen durch Plugins muss die Nicht-Caching-Engine von WordPress verwendet werden, um die Legitimität und Einzigartigkeit der Anfragen zu überprüfen und Cross-Site-Request-Forgery-Angriffe zu verhindern. Gleichzeitig sollte die folgende Methode angewendet werden:current_user_can()Die Funktion prüft, ob der aktuelle Benutzer über die erforderlichen Berechtigungen verfügt, um diese Aktion auszuführen.

// 在表单中输出 nonce 字段
wp_nonce_field( 'myplugin_action', 'myplugin_nonce' );

// 在处理请求时验证 nonce 和权限
function myplugin_handle_form_submit() {
    if ( ! isset( $_POST['myplugin_nonce'] ) ||
         ! wp_verify_nonce( $_POST['myplugin_nonce'], 'myplugin_action' ) ||
         ! current_user_can( 'manage_options' ) ) {
        wp_die( '安全校验失败。' );
    }
    // ... 安全地处理数据 ...
}

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein systematisches Projekt, das mit dem Verständnis der grundlegenden Struktur und der Hook-Mechanismen beginnt, über die Implementierung von Funktionen und die Erstellung von Benutzeroberflächen bis hin zur Einhaltung strenger Sicherheitspraktiken reicht. Durch die Einhaltung der WordPress-Codierungsstandards und die umfassende Nutzung der bereitgestellten APIs können Entwickler robuste, sichere und leicht zu wartende Plugins erstellen. Der Schlüssel liegt darin, benutzerdefinierte Funktionen nahtlos in den Lebenszyklus von WordPress über Aktionen und Filter-Hooks zu integrieren, die Konfiguration mithilfe der Settings-API zu verwalten und dabei stets Datenvalidierung, -bereinigung, -entschleierung und Berechtigungsprüfungen an oberster Stelle zu setzen.

FAQ Häufig gestellte Fragen

Wie kann ich mein WordPress-Plugin debuggen?
Die Aktivierung des Debug-Modus in WordPress ist der erste Schritt. Inwp-config.phpIn der Datei wird Folgendes festgelegt:WP_DEBUGDie Konstante ist auftruePHP-Fehler, Warnungen und Benachrichtigungen werden direkt auf der Seite angezeigt. Für eine umfassendere Fehlersuche kann man weitere Werkzeuge verwenden.error_log()Die Funktion zeichnet Informationen in das Fehlerprotokoll des Servers auf oder verwendet ein spezielles Debugging-Plugin, um detaillierte Informationen zu Abfragen, Hooks usw. anzuzeigen.

Wie kann mein Plugin mehrsprachige Unterstützung implementieren?

WordPress nutzt das GNU-Gettext-Framework zur Umsetzung der Internationalisierung. Zunächst werden die entsprechenden Definitionen in den Kommentaren am Anfang des Plugins vorgenommen.Text DomainIm Plugin-Code sollten für alle zu übersetzenden Zeichenketten spezielle Mechanismen oder Konventionen verwendet werden, um die Übersetzung ordnungsgemäß durchzuführen.__()Um eine Übersetzung durchzuführen, verwenden Sie_e()Übersetzen Sie und geben Sie das Ergebnis direkt aus. Anschließend extrahieren Sie die Zeichenfolgen aus dem Quellcode des Plugins und generieren Sie sie mithilfe eines Tools wie Poedit..potVorlagen-Dateien und erstellen Sie dann für jede Sprache die entsprechenden.poUnd das kompilierte….moDie Datei wird erstellt und im Plugin-Ordner abgelegt./languages/Im Verzeichnis.

Wie kann man verhindern, dass der Klassenname in einem Plugin mit anderen Plugins in Konflikt gerät?

Um Konflikte zwischen Klassennamen, Funktionsnamen oder Konstantennamen zu vermeiden, besteht die beste Vorgehensweise darin, Namensräume zu verwenden oder allen Bezeichnern ein eindeutiges Präfix hinzuzufügen. Seit PHP 5.3 wird die Verwendung von Namensräumen empfohlen. Beispielsweise kann man Folgendes deklarieren:namespace MyPluginAdmin;Wenn es um Kompatibilität geht, muss ein Präfix verwendet werden, und dieses Präfix sollte einzigartig genug sein, beispielsweise durch die Kombination des Firmennamens mit der Abkürzung des Plug-in-Namens:function acme_myplugin_init() {}Der Klassenname wird definiert alsclass Acme_MyPlugin_Admin_Settings {}

Wie füge ich meinem Plugin eine benutzerdefinierte Datenbanktabelle hinzu?

Der beste Zeitpunkt, um eine benutzerdefinierte Tabelle zu erstellen, ist, wenn das Plugin aktiviert wird. Sie können den Code zum Erstellen der Tabelle in eine Funktion einbinden und diese überregister_activation_hook()Registrieren Sie die Funktion. Innerhalb der Funktion verwenden SiedbDelta()Eine Funktion zum sicheren Erstellen oder Aktualisieren von Tabellenstrukturen, die die Verwendung eines sehr spezifischen SQL-Formats erfordert. Es ist unbedingt erforderlich, dies zu verwenden.$wpdb->prefixFügen Sie dem Tabellennamen ein Sites-Präfix hinzu, um eine Umgebung mit mehreren Websites zu unterstützen.