Die ultimative Anleitung zur Entwicklung von WordPress-Plugins: Benutzerdefinierte Funktionen von Grund auf erstellen

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

WordPress-Plugin-Entwicklungsumgebung und Grundlegende Vorbereitungen

Bevor Sie mit dem Schreiben des Codes beginnen, ist eine stabile und isolierte Entwicklungsumgebung der erste Schritt zum Erfolg. Dies schützt nicht nur Ihre Produktionswebseite vor den Auswirkungen des Testcodes, sondern erleichtert auch den Debugging-Prozess.

Aufbau einer lokalen Entwicklungsumgebung

Es wird empfohlen, lokale Server-Softwarepakete wie Local by Flywheel, XAMPP oder MAMP zu verwenden. Diese Tools ermöglichen die einfache Einrichtung einer vollständigen Umgebung, die PHP, MySQL sowie Apache/Nginx enthält. Stellen Sie sicher, dass Ihre PHP-Version den Anforderungen Ihrer gewünschten WordPress-Version entspricht. In der Regel wird PHP 7.4 oder eine höhere Version empfohlen, um bessere Leistung und Sicherheitsunterstützung zu erhalten.

Erstellen Sie die Hauptdatei des Plugins.

Jedes WordPress-Plugin muss eine Hauptdatei haben, die als Eingangspunkt für das Plugin dient. Diese Datei muss an einer bestimmten Stelle im WordPress-System platziert werden. wp-content/plugins In einem separaten Ordner innerhalb des Verzeichnisses sollte das Plugin unter einem einzigartigen Namen abgelegt werden. Zum Beispiel: Wenn Sie ein Plugin mit dem Namen “Grußbotschaften” erstellen möchten, können Sie einen Ordner mit dem Namen „Grußbotschaften“ anlegen. my-first-plugin Das Verzeichnis und darin die Hauptdatei erstellen. my-first-plugin.php

Empfohlene Lektüre Das ultimative Handbuch für die Entwicklung von WordPress-Plugins: Von der Grundlage bis zur Erstellung von kommerziell nutzbaren Plugins

Am Anfang dieses Files muss ein bestimmter Plugin-Hauptkommentar enthalten sein, der WordPress die grundlegenden Informationen über das Plugin liefert. Hier ist ein sehr einfaches Beispiel:

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://example.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的简单插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Die Kernstruktur des Plugins und der Hook-Mechanismus

Der Kern der WordPress-Plugin-Entwicklung besteht darin, das “Hook”-System zu verstehen und zu nutzen. Hooks ermöglichen es Ihnen, Ihren Code zu bestimmten Zeitpunkten in den Kernprozess von WordPress einzubinden, um Funktionen zu ändern oder hinzuzufügen, ohne die Kerndateien selbst zu verändern.

Verständnis von Aktion-Hooks und Filter-Hooks

Haken lassen sich hauptsächlich in zwei Kategorien einteilen: Aktionen (Actions) und Filter (Filters). Aktionshaken führen Ihren Code aus, wenn ein bestimmtes Ereignis stattfindet – beispielsweise beim Veröffentlichen eines Artikels oder beim Laden der Administrationsoberfläche. add_action() Funktionen werden verwendet, um Daten zu mounten (d.h. zu verarbeiten oder zu speichern). Filter-Hooks hingegen dienen dazu, Daten zu modifizieren – sie ermöglichen es Ihnen, die Werte der Daten zu ändern, bevor diese an die Datenbank oder in den Browser gesendet werden. add_filter() Eine Funktion, die zum Mounten verwendet wird.

Zum Beispiel kann man benutzerdefinierten Text am Fuß der Website-Seite hinzufügen, indem man… wp_footer Dieser Aktions-Hook:

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">Vielen Dank, dass Sie diese Website nutzen!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Erstellen einer Plugin-Verwaltungseite

Viele Plugins benötigen eine Einstellungsseite im WordPress-Administrationsbereich. Dies wird in der Regel erreicht, indem die entsprechenden Funktionen in das WordPress-System eingebunden („gemountet“) werden. admin_menu Die Aktion wird mithilfe von Action-Hooks umgesetzt. Sie müssen eine Funktion definieren und diese Funktion verwenden. add_menu_page() oder add_options_page() Verwenden Sie Funktionen zur Registrierung der Seite und definieren Sie eine weitere Funktion, um den HTML-Inhalt der Seite auszugeben.

Empfohlene Lektüre Vom Nullpunkt an: Ein umfassender Leitfaden und Praktikumskurs für die Entwicklung von WordPress-Plugins

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单别名
        'myplugin_render_settings_page' // 用于显示页面内容的函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Meine Plugin-Einstellungen</h2>
        <form method="post" action="/de/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="de"/></form>
    </div>
    &lt;?php
}

Implementierung von Plugin-Funktionen und Datenverarbeitung

Ein vollständiges Plugin muss in der Regel Benutzereingaben verarbeiten, Einstellungen speichern und mit einer Datenbank interagieren. WordPress stellt eine leistungsstarke API zur Verfügung, um diese Vorgänge zu vereinfachen.

Die Optionen mithilfe der Setup-API speichern.

Die manuelle Verarbeitung von Formulareingaben sowie Datenbankoperationen ist sowohl aufwendig als auch unsicher. Die WordPress-API bietet eine standardisierte und sichere Methode, um Einstellungen zu registrieren, zu überprüfen und zu speichern. Dazu werden drei Kernfunktionen verwendet:register_setting()add_settings_section() und add_settings_field()

Die folgenden Beispiele zeigen, wie man die Einstellungen für ein Textfeld registriert:

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_settings_init() {
    register_setting( 'myplugin_settings_group', 'myplugin_greeting_text' );

add_settings_section(
        'myplugin_section',
        '基础设置',
        null,
        'myplugin-settings'
    );

add_settings_field(
        'myplugin_field_greeting',
        '问候语',
        'myplugin_field_greeting_render',
        'myplugin-settings',
        'myplugin_section'
    );
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );

function myplugin_field_greeting_render() {
    $value = get_option( ‘myplugin_greeting_text’, ‘你好,世界!’ );
    echo ‘<input type=“text” name=“myplugin_greeting_text” value=“’ . esc_attr( $value ) . ‘” />’;
}

Erstellen Sie eine benutzerdefinierte Datenbanktabelle.

Für Plugins, die die Speicherung komplexer relationeller Daten erfordern, ist es möglicherweise notwendig, benutzerdefinierte Datenbanktabellen zu erstellen. Dies geschieht in der Regel beim Aktivieren des Plugins. Sie müssen eine Funktion schreiben und diese an das WordPress-Registrierungs- und Aktivierungs-Hook-System anbinden. dbDelta() Eine Funktion, die SQL-Anweisungen zur Erstellung oder Aktualisierung von Tabellen ausführt, kann intelligente Methoden anwenden, um Veränderungen in der Tabellenstruktur zu bewältigen.

Zunächst müssen Sie im Haupt-Plugin-File den Aktivierungs-Hook registrieren:

register_activation_hook( __FILE__, ‘myplugin_create_database_table’ );

Dann definieren Sie die Funktion zur Erstellung der Tabelle:

Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Plugins: Erstellen Sie Ihr erstes Plugin von Grund auf

function myplugin_create_database_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘myplugin_data’;
    $charset_collate = $wpdb->get_charset_collate();

$sql = “CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        email varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;”;

require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
    dbDelta( $sql );
}

Plugin-Sicherheit, Internationalisierung und Vorbereitung auf die Veröffentlichung

Die fertig entwickelten Plugins müssen vor der sicheren Auslieferung an die Nutzer oder der Einreichung in den offiziellen Verzeichnissen Sicherheitsmaßnahmen unterzogen, lokalisiert in verschiedene Sprachen und anschließend standardisiert verpackt werden.

Sichere Best Practices umsetzen

Sicherheit ist von größter Bedeutung bei der Entwicklung von Plugins. Stellen Sie immer die Eingaben der Benutzer überprüft (überprüfen Sie das Format) und reinigen Sie diese (entfernen Sie schädliche Inhalte). Nutzen Sie dazu die von WordPress bereitgestellten Funktionen. esc_html()esc_attr()sanitize_text_field() Um Daten auszugeben oder zu verarbeiten, werden bei der Ausführung von Datenbankabfragen bestimmte Methoden und Werkzeuge verwendet. $wpdb->prepare() Methoden zur Verhinderung von SQL-Injection-Angriffen. Gleichzeitig wird… current_user_can() Überprüfen Sie die Benutzerrechte und stellen Sie sicher, dass nur autorisierte Benutzer sensible Operationen durchführen können.

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.

Die Internationalisierung des Plugins umsetzen.

Damit Ihre Erweiterung von Nutzern auf der ganzen Welt verwendet werden kann, müssen Sie sie für die Internationalisierung (i18n) vorbereiten. Das bedeutet, dass alle für die Benutzer bestimmten Zeichenketten nicht direkt im Code geschrieben werden dürfen, sondern mit den Übersetzungsfunktionen von WordPress umschlossen werden müssen. Die am häufigsten verwendeten Funktionen sind… () Dient zum Ausgeben der Übersetzung.() Dient zum Abrufen der übersetzten Zeichenkette sowie… _e() Für die direkte Ausgabe der Übersetzung.

In Ihrem Code sollte es so geschrieben werden:

$greeting = __( ‘你好,世界!’, ‘my-first-plugin’ );
echo esc_html( $greeting );

_e( ‘设置已保存。’, ‘my-first-plugin’ );

Bitte beachten Sie, dass der zweite Parameter der Übersetzungsfunktion, “Text Domain”, mit dem in den Anmerkungen am Anfang des Plugins definierten Wert übereinstimmen muss. Text Domain Vollkommen übereinstimmt. Danach können Sie Tools wie Poedit verwenden, um die Übersetzung zu erstellen. .pot Vorlagen-Dateien, die Übersetzer zum Erstellen verwenden können. .po und .mo Translate the file.

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein Prozess, bei dem Kreativität in funktionale Lösungen umgewandelt wird – und dies basiert auf einem tiefen Verständnis der Kernarchitektur von WordPress, insbesondere des Hook-Systems. Von der Einrichtung der Entwicklungsumgebung über das Schreiben der Hauptdateien sowie die Nutzung von Aktionen und Filter-Hooks bis hin zur Verarbeitung von Daten mithilfe der Setup-API und der Database-API, folgt jeder Schritt einem klaren Muster. Erst durch strenge Sicherheitspraktiken und umfassende Internationalisierungsunterstützung kann Ihr Plugin aus einem persönlichen Projekt zu einem veröffentlichen Produkt werden. Sobald Sie diese Grundlagen beherrschen, können Sie sich mit komplexeren Aspekten beschäftigen, wie der Definition benutzerdefinierter Artikeltypen, der Integration von REST-APIs sowie der Entwicklung von Gutenberg-Blöcken, um so noch leistungsfähigere und modernere Erweiterungen für WordPress zu erstellen.

FAQ Häufig gestellte Fragen

Muss man PHP beherrschen, um WordPress-Plugins zu entwickeln?

Ja, PHP ist die Hauptprogrammiersprache für die Entwicklung von WordPress und dessen Plugins. Sie müssen die Grundlagen der PHP-Syntax, Funktionen, Arrays sowie Konzepte der objektorientierten Programmierung beherrschen. Ebenso ist ein grundlegendes Verständnis von HTML, CSS und JavaScript unerlässlich, da Sie sich mit der Frontend-Präsentation und -Interaktion beschäftigen müssen.

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

Es wird empfohlen, den Debugging-Modus von WordPress zu aktivieren. wp-config.php In der Datei wird Folgendes festgelegt: WP_DEBUG Die Konstante ist auf trueDies wird alle PHP-Fehler, Warnungen und Benachrichtigungen auf dem Bildschirm anzeigen. Gleichzeitig kann man dies auch für andere Zwecke nutzen. error_log() Die Funktion schreibt die Debugging-Informationen in das Fehlerprotokoll des Servers oder verwendet die Entwicklertools des Browsers für die Frontend-JavaScript-Debugging.

Wie kann man vermeiden, dass die Funktionsnamen in einem Plugin mit denen anderer Plugins konfliktieren?

Um Konflikte zwischen Funktionsnamen, Klassennamen oder Konstantennamen zu vermeiden, sollten immer eindeutige Präfixe verwendet werden. Die beste Praxis besteht darin, die Namen von Plugins oder Abkürzungen als Präfixe zu verwenden. Zum Beispiel, wenn Ihr Plugin “Awesome Slider” heißt, könnten Sie Präfixe wie „aws“ oder „asl“ verwenden. as_ oder awesome_slider_ Als Präfix für alle benutzerdefinierten Funktionen. Dasselbe Prinzip sollte auch für Klassennamen angewendet werden.

Kann man bezahlte Plugins in das offizielle WordPress-Plugin-Verzeichnis einreichen?

Das ist nicht möglich. Das offizielle WordPress-Plugin-Verzeichnis akzeptiert ausschließlich Plugins, die der GPL-Lizenz unterliegen und vollständig kostenlos sind. Wenn Sie ein kostenpflichtiges (erweitertes) Plugin entwickeln, müssen Sie es auf Ihrer eigenen Website vertrieben und verkaufen. Viele kostenpflichtige Plugins bieten jedoch eine kostenlose Version an, die in das offizielle Verzeichnis eingereicht werden kann – diese dient als Werbemittel und Testmöglichkeit für die erweiterten Funktionen des Plugins.