Eine vollständige Anleitung zur Entwicklung von WordPress-Plugins: Von den Grundlagen bis hin zur Praxis zur Erstellung benutzerdefinierter Funktionen.

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

WordPress Plugin Entwicklung Übersicht

Ein WordPress-Plugin ist eine Sammlung von PHP-Skripten, die zur Erweiterung und Verbesserung der WordPress-Kernfunktionen verwendet werden. Sie ermöglichen es Entwicklern, neue Funktionen, Widgets und Verwaltungsfelder hinzuzufügen oder bestehende Funktionen zu ändern, ohne den WordPress-Kerncode zu verändern. Ein Plugin kann so einfach sein wie eine einzelne Datei oder so komplex, dass es mehrere Verzeichnisse und mehrere Dateitypen enthält.

Der Kern des Verständnisses von Plugins liegt in ihrer Eingabedatei. Jedes Plugin muss mindestens eine Haupt-PHP-Datei enthalten und im Header dieser Datei Standard-Plugin-Meta-Informationen bereitstellen. Diese Informationen werden vom WordPress-Plugin-Manager gelesen und in der Plugin-Liste im Backend angezeigt.

Erstellen Sie Ihr erstes Plugin.

Erstellen der Basisdateistruktur

Als erstes müssen Sie die Eintragsdatei des Plugins erstellen. In Ihrem WordPress-Installationsverzeichnis im Verzeichniswp-content/plugins/Im Ordner erstellen Sie einen neuen Ordner, zum Beispiel…my-first-plugin. Erstellen Sie in diesem Ordner eine PHP-Hauptdatei mit demselben Namen wie der Ordner, z. B.my-first-plugin.php

Empfohlene Lektüre Vom Nullpunkt aus: Erstellen Sie Ihr erstes WordPress-Plugin

Erstellen Sie die Kopfinformationen für das Plugin.

In dieser Masterdatei müssen Sie einen WordPress-konformen Plugin-Header-Kommentar hinzufügen. Dies ist wichtig, damit das Plugin von WordPress erkannt und aktiviert werden kann.

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

Dieser Kommentar enthält grundlegende Informationen über das Plugin. Sobald Sie diese Datei gespeichert haben, können Sie sie auf der Seite Plugins im WordPress-Backend sehen.

Implementierung einer einfachen Funktion

Als Nächstes fügen wir eine der einfachsten Funktionen dieses Plugins hinzu: eine benutzerdefinierte Textzeile am Anfang aller Beitragsinhalte. Wir können dies mit derthe_contentDieser Filterhaken implementiert ihn.

function myplugin_add_text_to_content( $content ) {
    $custom_text = '<p>Dieser Artikel wurde von meinem ersten Plugin hinzugefügt Greetings!</p>';
    return $custom_text . $content.
}
add_filter( 'the_content', 'myplugin_add_text_to_content' );

Fügen Sie diesen Code zu Ihrer Haupt-Plugin-Datei hinzu (my-first-plugin.php), speichern und aktivieren Sie das Plugin. Wenn Sie nun einen beliebigen Beitrag oder eine beliebige Seite auf der Website aufrufen, wird der angegebene Text am Anfang des Inhalts angezeigt. Dies ist die einfachste Implementierung der Plugin-Funktionalität.

Kernkonzepte und APIs der Plug-in-Entwicklung

Verständnis des Haken-Mechanismus

Hooks sind das Herzstück der WordPress-Plugin-Entwicklung. Sie ermöglichen es, Ihren Code in den WordPress-Kern oder andere Plugin-Ausführungsprozesse “einzuhängen”. Hooks sind in zwei Haupttypen unterteilt: Aktion (Action) und Filter (Filter).

Empfohlene Lektüre Wie man von Grund auf das Entwicklung von WordPress-Plugins lernt: Ein umfassender Leitfaden und Praxis-Tutorial

Aktionen werden verwendet, um Ihren benutzerdefinierten Code zu einem bestimmten Zeitpunkt auszuführen. Zum Beispiel.wp_footerMit Aktionen können Sie HTML oder Skripte am Ende der Seite ausgeben. Sie können dieadd_action()Funktion, um eine Aktion durchzuführen.

Filter werden verwendet, um Daten zu ändern, bevor sie an die Datenbank oder den Browser weitergeleitet werden. Zum Beispiel kann derthe_contentMit Filtern können Sie den Inhalt des Artikels ändern. Sie müssen dieadd_filter()Funktion, um den Filter hinzuzufügen, und Ihre Callback-Funktion muss den geänderten Wert zurückgeben.

Verwendung der zentralen Datenbankklassen

WordPress bietet eine leistungsfähige Datenbankabstraktionsklassewpdbdas für die sichere Interaktion mit der Datenbank verwendet wird. Sie sollten dieses globale Objekt direkt verwenden, anstatt die MySQL-Funktionen von PHP direkt aufzurufen.

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 zum Beispiel Informationen in einer Datenbank abfragen möchten, können Sie dies tun:

global $wpdb;
$results = $wpdb->get_results( "SELECT id, name FROM {$wpdb->prefix}my_custom_table" );

Achten Sie auf die Verwendung von$wpdb->prefixum sicherzustellen, dass das Tabellenpräfix korrekt ist. Verwenden Sie für Einfüge-, Aktualisierungs- oder Löschvorgänge unbedingt diewpdbAngebotinsert()update()und anderen Methoden wird automatisch ein Daten-Escaping durchgeführt, um SQL-Injection-Angriffe zu verhindern.

Erstellen einer Seite mit administrativen Einstellungen

WordPress bietet eine Vielzahl von API-Funktionen, um verschiedene Ebenen von Menüpunkten und Seiten hinzuzufügen, wobei die am häufigsten verwendete Funktion dieadd_menu_page() und add_options_page()

Empfohlene Lektüre WooCommerce Praxisleitfaden: Von Null zu einer professionellen E-Commerce-Website

Im Folgenden finden Sie ein Beispiel für das Hinzufügen eines Menüs der obersten Ebene und einer einfachen Einstellungsseite:

function myplugin_add_admin_menu() {
    add_menu_page(
        'Meine Plugin-Einstellungen', // Seitentitel
        'Meine Plugins', // Titel des Menüs
        manage_options', // erforderliche Berechtigungen
        'myplugin-settings', // Menü-Slug
        'myplugin_settings_page', // Callback-Funktion zur Ausgabe von Seiten-HTML
        'dashicons-admin-generic', // Symbol
        6 // Standort des Menüs
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_settings_page() {
    ? &gt;
    <div class="wrap">
        <h1>Meine Plugin-Einstellungen</h1>
        <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
}

In diesem Beispiel wird ein Menü der obersten Ebene mit dem Namen “Meine Plugins” erstellt, das angeklickt wird, um zum Menü zu gelangen, das von der Optionmyplugin_settings_pageFunktion rendert die Seite. Normalerweise verwenden Sie diese Funktion in Verbindung mit der WordPress-Einstellungs-API (register_setting, add_settings_section, add_settings_field), um Einrichtungsgegenstände sicher zu handhaben und zu speichern.

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.

Projektpraxis: die Entwicklung eines Plug-ins für die Notizverwaltung

In diesem Abschnitt werden wir die oben genannten Kenntnisse kombinieren, um eine einfache “Haftnotiz”-Funktion zu erstellen, die auf der Seite zur Bearbeitung von Beiträgen verwendet werden kann. Dieses Plugin ermöglicht es Redakteuren, private interne Notizen zu Beiträgen hinzuzufügen.

Erstellen Sie eine benutzerdefinierte Datenbanktabelle.

Wenn das Plugin aktiviert ist, müssen wir zunächst eine neue Datenbanktabelle erstellen, um die Haftnotizen zu speichern. Dies kann durch die Registrierung eines Aktivierungshakens erreicht werdenregister_activation_hookUm dies zu erreichen…

function my_note_plugin_activate() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'post_notes';
    $charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        post_id bigint(20) NOT NULL,
        note_content text NOT NULL,
        created_by bigint(20) 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 );
}
register_activation_hook( __FILE__, 'my_note_plugin_activate' );

Hier verwenden wir diedbDelta()Funktion, um eine Tabellenstruktur zu erstellen oder zu aktualisieren. Dies ist eine sichere und kompatible Methode.

Hinzufügen eines Metakästchens zum Bearbeitungsbildschirm für Artikel

Als Nächstes müssen wir der Seite zum Bearbeiten von Beiträgen ein Metafeld hinzufügen, in dem Haftnotizen angezeigt und gespeichert werden können. Dies erfordert die Verwendung desadd_meta_boxDie Funktion und ihre anschließende Montage…add_meta_boxesAktion.

function my_note_add_meta_box() {
    add_meta_box(
        my_note_meta_box', // eindeutige ID der Metabox
        'Post-Inside Sticky Notes', // Titel der Anzeige
        'my_note_meta_box_callback', // Callback-Funktion, die den Inhalt der Metabox wiedergibt
        'post', // Typ des anzuzeigenden Beitrags
        'side', // Position
        'default' // Priorität
    );
}
add_action( 'add_meta_boxes', 'my_note_add_meta_box' );

function my_note_meta_box_callback( $post ) {
    // Holt die vorhandenen Haftnotizen für den aktuellen Beitrag aus der Datenbank.
    global $wpdb;
    $able_name = $wpdb-&gt;prefix . 'post_notes';
    $notes = $wpdb-&gt;get_results( $wpdb-&gt;prepare( 'SELECT * FROM $table_name WHERE post_id = %d ORDER BY created_at DESC", $post -&gt;ID ) );

wp_nonce_field( "my_note_save_action', 'my_note_nonce_field' );
    echo '<textarea name="my_new_note" rows="5" style="width:100%;" placeholder="Geben Sie Ihr internes Memo ein..."></textarea>'echo '<p class="description">Dieser Hinweis ist nur für Redakteure und Administratoren der Website sichtbar.</p>';

if ( $notes ) {
        echo '<hr><h4>Geschichte Haftnotizen:</h4>';
        foreach ( $notes as $note ) {
            $user = get_user_by( 'id', $note-&gt;created_by );
            1TP5Benutzername = 1TP5Benutzer ? $user-&gt;display_name : 'Unbekannter Benutzer'; $username = $user-&gt;display_name ?
            echo '<p><strong>' . esc_html( 1TP5Benutzername ) . ' (' . $note-&gt;erstellt_am . ').</strong><br>';
            echo nl2br( esc_html( $note-&gt;note_content ) ) . '</p>';
        }
    }
}

Speichern und Bereinigen von Daten

Wenn ein Artikel gespeichert oder aktualisiert wird, müssen wir die neue Haftnotiz in der Datenbank speichern. Dies kann mit demsave_postAktion, um dies zu erreichen. Auch wenn das Plugin gelöscht wird (optional), müssen wir einen Deinstallations-Hook bereitstellenregister_uninstall_hookum die erstellte Datentabelle zu bereinigen.

function my_note_save_post_data( $post_id ) {
    // 检查非ce、权限、自动保存等
    if ( ! isset( $_POST['my_note_nonce_field'] ) || ! wp_verify_nonce( $_POST['my_note_nonce_field'], 'my_note_save_action' ) ) {
        return;
    }
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }

if ( ! empty( $_POST['my_new_note'] ) ) {
        global $wpdb;
        $table_name = $wpdb->prefix . 'post_notes';

$wpdb->insert(
            $table_name,
            array(
                'post_id' => $post_id,
                'note_content' => sanitize_textarea_field( $_POST['my_new_note'] ),
                'created_by' => get_current_user_id(),
            ),
            array( '%d', '%s', '%d' )
        );
    }
}
add_action( 'save_post', 'my_note_save_post_data' );

// 可选:卸载插件时删除数据表
function my_note_plugin_uninstall() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'post_notes';
    $wpdb->query( "DROP TABLE IF EXISTS $table_name" );
}
register_uninstall_hook( __FILE__, 'my_note_plugin_uninstall' );

Bewährte Praktiken und Release-Readiness

Befolgen Sie die WordPress-Codierungsstandards

Um die Lesbarkeit des Codes, die Wartbarkeit und die Kompatibilität mit anderen Plugins zu gewährleisten, halten Sie sich bitte streng an die offiziellen WordPress-PHP-Codierungsstandards. Dazu gehören unter anderem: die Verwendung einer korrekten Einrückung (Tabulatoren anstelle von Leerzeichen), die Verwendung von Kleinbuchstaben und Unterstrichen für Funktionsnamen, Variablennamen (snake_case), die Verwendung von Großbuchstaben für Klassennamen und die Verwendung von Internationalisierungsfunktionen für alle übersetzbaren Zeichenfolgen.

Auf dem Weg zur Internationalisierung

Ein gutes Plugin, das weit verbreitet sein soll, muss die Internationalisierung unterstützen. Das bedeutet, dass der gesamte benutzerseitige Text in Übersetzungsfunktionen verpackt sein sollte.

WordPress bietet__()_e()_n()und eine Reihe anderer Funktionen. Als erstes müssen Sie die Plugin-Header-Informationen in der DateiText Domain(z. B. my-first-plugin) und wandelt sie dann jedes Mal um, wenn die Zeichenfolge ausgegeben oder verwendet wird.

Beispiel:

\necho '<p>' . esc_html__( 'Dies ist ein Demo-Text.' , 'mein-erstes-plugin' ) . '</p>';

Sie können dann ein Tool wie Poedit verwenden, um den gesamten Text zu extrahieren und die.potDokumente für Übersetzer zur Übersetzung in verschiedene Sprachen.mound.poDokumente.

Sicherheit und Leistungsoptimierung

Sicherheit hat bei der Entwicklung von Plugins oberste Priorität. Validieren und bereinigen Sie immer Benutzereingaben (Sanitization) und vermeiden Sie Ausgaben (Escaping). Verwenden Sie in SQL-Abfragen immerprepare()Anweisung, um Injektionen zu verhindern. Überprüfen Sie vor der Durchführung der Operation die Benutzerrechte (current_user_can()). Für nonce verwenden Sie den WordPress nonce-Mechanismus (wp_nonce_field(), wp_verify_nonce())。

Optimieren Sie im Hinblick auf die Leistung Datenbankabfragen und vermeiden Sie die Ausführung von Abfragen in Schleifen. Nutzen Sie die Transients-API von WordPress sinnvoll für das Caching. Entfernen Sie Hooks, wenn sie nicht benötigt werden (unter Verwendung derremove_action(), remove_filter()). Fügen Sie schließlich nur die erforderlichen Dateien in das Plugin-Verzeichnis ein und komprimieren und bereinigen Sie den Code vor der Freigabe.

Vorbereitungen für die Veröffentlichung im WordPress-Repository

Wenn Sie beabsichtigen, das Plugin im offiziellen WordPress-Plugin-Verzeichnis zu veröffentlichen, müssen Sie eine Reihe von Vorbereitungen treffen. Stellen Sie sicher, dass das Plugin eine klarereadme.txtDatei, die entsprechend der WordPress-Spezifikation formatiert ist. Die Datei sollte die Plugin-Beschreibung, die Installationsanleitung, die FAQ, das Protokoll der Versionsaktualisierung usw. enthalten. Stellen Sie außerdem sicher, dass die Header-Informationen der Haupt-Plugin-Datei vollständig und korrekt sind. Testen Sie gründlich die Kompatibilität Ihres Plugins in verschiedenen Umgebungen und mit verschiedenen WordPress-Versionen.

Zusammenfassungen

Die Entwicklung von WordPress-Plugins ist ein kreativer Prozess der Umsetzung von Ideen in leistungsstarke Funktionen. Wenn Sie die grundlegende Struktur von Plugins verstehen, den Kernmechanismus von Hooks (Aktionen und Filter) beherrschen und sich mit Kernfunktionen wie der Einstellungs-API, Datenbankoperationen usw. auskennen, können Sie eine breite Palette von Plugins erstellen, von einfachen Tools bis hin zu komplexen Lösungen. Achten Sie während des gesamten Entwicklungsprozesses auf Sicherheit, Leistung, Codestandards und Internationalisierung. Beginnen Sie mit der Erstellung Ihres ersten “Hello World”-Plugins, üben Sie Schritt für Schritt, und schließlich werden Sie in der Lage sein, selbstbewusst professionelle, veröffentlichungsfähige WordPress-Plugins zu erstellen.

FAQ Häufig gestellte Fragen

Welche Fähigkeiten sind für die Plugin-Entwicklung erforderlich?

Sie benötigen eine solide Grundlage in PHP und Vertrautheit mit grundlegendem HTML, CSS und JavaScript, und ein grundlegendes Verständnis von MySQL-Datenbanken ist ebenfalls wichtig. Entscheidend ist, dass Sie die Kernarchitektur von WordPress verstehen, insbesondere den Hook-Mechanismus und die Vorlagenhierarchie. Kenntnisse in objektorientierter Programmierung (OOP) sind bei der Erstellung komplexer Plugins sehr hilfreich.

Was ist der Unterschied zwischen Plugin- und Theme-Funktionen?

Plugins werden verwendet, um einer Website Funktionen hinzuzufügen oder zu ändern, und sollten theoretisch vom Erscheinungsbild der Website getrennt sein, hochgradig portabel und in der Lage, nach einem Theme-Wechsel weiter zu funktionieren. Themes steuern in erster Linie das Erscheinungsbild und das Layout der Website, obwohl moderne Themes oft auch eine Menge funktionalen Code enthalten (dies wird jedoch als schlechte Praxis angesehen). Wenn eine Funktion eng mit dem Erscheinungsbild der Präsentation zusammenhängt, kann sie in das Theme integriert werden; handelt es sich um eine generische oder eigenständige Funktion, sollte sie in ein Plugin integriert werden.

Wie gehen Sie mit Plugin-Updates und Kompatibilität um?

Um die Aktualisierung durchführen zu können, müssen Sie die Header-Kommentare des Plugins mit demVersionFelder. Für größere Updates sollten Sie den WordPress-Update-Benachrichtigungsmechanismus und den Updater verwenden. Der Schlüssel zu einer guten Kompatibilität ist die strikte Einhaltung der WordPress-Kern-API, die Vermeidung privater oder veralteter Funktionen und die Verwendung derreadme.txtIn der Dokumentation ist klar angegeben, welche WordPress-Version das Plugin mindestens unterstützt. Stellen Sie sicher, dass Sie die neue Version unter mehreren WordPress-Versionen vollständig testen, bevor Sie sie freigeben.

Wie soll das Plugin CSS- und JavaScript-Dateien laden?

Um Kompatibilität und Leistung zu gewährleisten, muss die WordPress-Enqueue-Funktion verwendet werden, um Skripte und Stylesheets ordnungsgemäß zu laden. Verwenden Sie im Hintergrund dieadmin_enqueue_scriptsHaken, die im Vordergrund stehenwp_enqueue_scriptsHäkchen. Verwenden Sie diewp_enqueue_style()undwp_enqueue_script()Funktion, und achten Sie auf die Handhabung von Abhängigkeiten und Versionsnummern.

Wie füge ich benutzerdefinierte Beitragstypen oder benutzerdefinierte Taxonomien zu meinem Plugin hinzu?

Hinzufügen von benutzerdefinierten Beitragstypen (CPT) zur Verwendungregister_post_type()Funktion zum Hinzufügen benutzerdefinierter Taxonomien mit derregister_taxonomy()Funktionen. Die beste Praxis ist, diese Registrierungsvorgänge in derinitAktionshaken werden in den Aktionshaken ausgeführt. Sie müssen die Reihe von Registrierungsparametern sorgfältig konfigurieren, einschließlich Bezeichnungen, Öffentlichkeit, unterstützte Funktionen, Vorhandensein von archivierten Seiten usw., die das Verhalten im Backend und Frontend bestimmen.