WordPress Plugin erstellen: So programmieren Sie ein eigenes Plugin
Ein eigenes WordPress-Plugin von Grund auf zu entwickeln, klingt für viele zunächst nach einem komplexen Vorhaben. So schwer ist es aber gar nicht: Etwas Basiswissen in PHP reicht schon aus, um erste Funktionen zu erstellen. Möchten Sie es ausprobieren?
In diesem Ratgeber zeigen wir Ihnen Schritt für Schritt, wie Sie ein einfaches WordPress-Plugin erstellen – inklusive Beispielcode und praktischer Tipps, wie Sie das Plugin später sinnvoll ausbauen.
Mit eigenen Plugins ergänzen Sie WordPress um maßgeschneiderte Funktionen. Sie bleiben unabhängig von Drittanbietern und behalten die volle Kontrolle über Erweiterungen und Anpassungen.
Die Einstiegshürde ist weniger hoch, als viele denken: Grundlegende PHP-Kenntnisse reichen für einfache Funktionen aus.
Für den Start genügt bereits eine einzelne PHP-Datei. Darauf aufbauend können Sie Ihr Plugin Schritt für Schritt erweitern.
Mit sauberem Code, einer klaren Struktur und ein paar grundlegenden Sicherheitsmaßnahmen vermeiden Sie Konflikte und Wartungsprobleme.
Warum ist ein eigenes WordPress-Plugin sinnvoll?
Ein eigenes Plugin zu entwickeln, ist immer dann sinnvoll, wenn Sie WordPress gezielt erweitern möchten. Natürlich gibt es unzählige fertige Erweiterungen, doch bestehende Erweiterungen sind teils überladen oder einfach nicht flexibel genug für spezifische Anforderungen – ganz zu schweigen von möglichen Kosten.
Mit einem selbst entwickelten Plugin behalten Sie die Kontrolle, vermeiden unnötige Abhängigkeiten und können Ihre Funktionen exakt an Ihren Bedarf anpassen.
Diese Freiheit und Unabhängigkeit bringt einige Vorteile mit sich – aber auch manche Einschränkungen, die Sie vorher kennen sollten:
Gezielte Funktionalität ohne Ballast
Ein eigenes Plugin enthält nur das, was Sie benötigen. Sie vermeiden unnötigen Overhead durch fremde Funktionen, die Ihre Website verlangsamen oder potenzielle Sicherheitslücken mitbringen.Unabhängigkeit vom Theme
Plugin-Code bleibt auch bei einem Theme-Wechsel erhalten. Während Funktionen in der functions.php mit dem Theme verschwinden, bleibt Ihr eigenes Plugin dauerhaft nutzbar.Bleibt bei Updates bestehen
Auch WordPress-Updates überschreiben keine Plugins, solange Sie nicht im Core eingreifen. Ihre Funktionen bleiben bei Systemaktualisierungen bestehen.Einfach wiederverwendbar
Sie können Ihr Plugin problemlos auf anderen WordPress-Seiten einsetzen. Der Code bleibt portabel, versionierbar und lässt sich so in verschiedenen Projekten nutzen.Besseres Verständnis der WordPress-Architektur
Beim Entwickeln eines eigenen Plugins lernen Sie die internen Strukturen und Abläufe von WordPress besser kennen. Sie setzen sich mit Hooks, Filtern und API-Funktionen auseinander.
Selbst für Wartung und Sicherheit verantwortlich
Sie sind selbst dafür verantwortlich, Sicherheitslücken zu vermeiden, die Kompatibilität mit neuen WordPress-Versionen sicherzustellen und gegebenenfalls Korrekturen vorzunehmen.Mehr Aufwand als ein Snippet
Ein Plugin erfordert mehr Struktur als ein einfaches Code-Snippet in der functions.php eines Themes. Der initiale Aufwand ist höher.
So erstellen Sie ein WordPress-Plugin
Ein erstes, einfach gehaltenes WordPress-Plugin ist schnell erstellt. Wir zeigen Ihnen Schritt für Schritt, wie Sie eine passende Entwicklungsumgebung einrichten, Ihren Plugin-Ordner korrekt anlegen, eine erste Funktion umsetzen und Ihre Erweiterung im WordPress-Backend testen:
Entwicklungsumgebung vorbereiten
Bevor Sie mit dem eigentlichen Coden beginnen, sollten Sie Ihre Arbeitsumgebung vorbereiten. Empfehlenswert ist eine lokale Umgebung auf Ihrem Rechner. So können Sie Funktionen testen, ohne eine Live-Website zu gefährden.
Eine solche Umgebung besteht mindestens aus einer lokalen WordPress-Installation und einem geeigneten Code-Editor.
Lokale WordPress-Installation erstellen
Folgende kostenfreie Tools eignen sich besonders gut, um WordPress lokal zu betreiben:
Local by Flywheel ist einsteigerfreundlich und optimiert für WordPress.
Nach der Installation eines dieser Tools richten Sie darüber eine frische WordPress-Instanz ein. Innerhalb dieser Testumgebung finden Sie alle relevanten Verzeichnisse, insbesondere den wichtigen Ordner wp-content/plugins, in dem Sie Ihre Plugins später speichern.
Mehr zur Installation von WordPress lesen Sie hier:
Code-Editor einrichten
Ein moderner Code-Editor erleichtert die Arbeit erheblich. Wir empfehlen die folgenden Optionen:
Visual Studio Code ist ein kostenloser, leistungsstarker Editor mit nützlichen Erweiterungen wie PHP Intelephense, WordPress Snippets und WordPress Toolbox.
Sublime Text ist ein schlanker, schneller Editor mit guter PHP-Unterstützung und nützlichen Paketen für Syntaxhervorhebung und Code-Struktur.
Beide Editoren eignen sich hervorragend für den Einstieg in die Plugin-Entwicklung. Wichtig ist, dass Sie sich in Ihrem bevorzugten Programm schnell zurechtfinden und effizient arbeiten können.
Debugging aktivieren
Nachdem Sie den Editor installiert haben, öffnen Sie die Datei wp-config.php Ihrer WordPress-Testumgebung und setzen dort:
Damit leitet WordPress alle PHP-Fehler, Warnungen und Hinweise an eine Log-Datei weiter. Sie erkennen damit Syntax- und Laufzeitfehler schneller und können darauf reagieren.
Diese Debug‑Einstellungen sind nur für Ihre lokale Entwicklungsumgebung gedacht und nicht für den Live‑Betrieb. Deaktivieren Sie das Debugging bei Live‑Websites und analysieren Sie Fehler ausschließlich über Log‑Mechanismen auf Server‑Ebene oder über Monitoring-Tools.
Plugin-Ordner und Hauptdatei anlegen
Sobald die Umgebung bereit ist, beginnt die eigentliche Plugin-Erstellung. Zunächst legen Sie die grundlegende Ordner- und Dateistruktur an:
Schritt 1: Wechseln Sie in das Verzeichnis wp-content/plugins.
Schritt 2: Legen Sie einen neuen Ordner an, z. B. mein-plugin.
Schritt 3: Erstellen Sie darin die Datei mein-plugin.php und öffnen Sie diese.
Anschließend definieren Sie die notwendigen Plugin-Metadaten im sogenannten Plugin-Header.
Plugin-Header schreiben
Damit WordPress Ihr Plugin auch erkennt, benötigt Ihre Hauptdatei mein-plugin.php einen Header-Kommentar. Er enthält wichtige Metainformationen wie Name, Beschreibung, Version und Autor:
Mindestens der Wert „Plugin Name“ ist erforderlich. Ohne ihn erkennt WordPress das Plugin nicht und listet es auch nicht im Backend Ihrer Installation.
Optional können Sie weitere Felder angeben. Das ist vor allem dann sinnvoll, wenn Sie Ihr Plugin später veröffentlichen oder internationalisieren möchten. Ein Beispiel für einen vollständigen Plugin-Header mit allen gängigen Feldern laut dem WordPress Plugin Developer Handbook:
Feldname | Beschreibung |
|---|---|
Plugin Name | Wird im Backend als Name des Plugins angezeigt |
Plugin URI | Link zur Projekt- oder Plugin-Website |
Description | Kurzbeschreibung, erscheint im Plugin-Bereich im Backend |
Version | Versionsnummer des Plugins |
Requires at least | Mindestanforderung an die WordPress-Version |
Tested up to | Höchste WordPress-Version, mit der das Plugin getestet wurde |
Requires PHP | Mindestanforderung an die PHP-Version |
Author | Name des Entwicklers |
Author URI | Website oder Profilseite des Autors |
License | Lizenzangabe, z. B. GPLv2 |
License URI | Link zum vollständigen Lizenztext |
Text Domain | Kennung zur Übersetzbarkeit des Plugins mit gettext |
Domain Path | Speicherort für Sprachdateien innerhalb des Plugins |
Speichern Sie die Datei mein-plugin.php mit Ihrem Header-Kommentar. Im nächsten Schritt geht es dann los mit der eigentlichen Arbeit an Ihrem Plugin.
Erste Funktion programmieren
Nach der Initialisierung folgt nun das Herzstück Ihres ersten Plugins: eine eigene Funktion. Für den Einstieg eignet sich eine einfache Nachricht im WordPress-Dashboard, die zeigt, dass das Plugin korrekt geladen wurde.
Der Code besteht aus drei Teilen:
- 1.
function definiert eine neue Funktion, in diesem Fall mein_plugin_admin_notice.
- 2.
echo gibt HTML aus. Die notice-Klasse erzeugt ein Hinweisfeld im Dashboard.
- 3.
add_action hängt Ihre Funktion an den gleichnamigen Hook.
Achten Sie bei allen Funktionsnamen auf einen eindeutigen Präfix. So vermeiden Sie Kollisionen mit anderen Plugins oder Themes. Denken Sie auch daran, Ihre PHP-Datei mit ?> korrekt zu schließen.
Im Editor Visual Code Studio sieht die Datei mein-plugin.php dann so aus. Sie besteht aus einem Header-Kommentar und einer Funktion:

Die Datei mein-plugin.php in Visual Code Studio.
Damit ist der Grundstein gelegt. Im nächsten Schritt aktivieren Sie das Plugin im WordPress-Backend, überprüfen das Ergebnis im Dashboard und analysieren mögliche Fehlerquellen, falls die Ausgabe nicht wie erwartet erscheint.
Plugin aktivieren und testen
Sobald Sie die Plugin-Datei mit Header und erster Funktion gespeichert haben, können Sie das Plugin aktivieren und testen. So stellen Sie sicher, dass Ihre Funktion wie erwartet ausgeführt wird und keine Fehler auftreten.
Schritt 1: Öffnen Sie den Plugin-Bereich im Backend Ihrer WordPress-Testumgebung.
Schritt 2: Suchen und aktivieren Sie Ihr Plugin (Mein Beispiel-Plugin).
Wenn Sie alles richtig gemacht haben, führt WordPress Ihre Funktion sofort nach Aktivierung des Plugins aus. Es erscheint eine Mitteilung mit dem Text „Mein Plugin wurde aktiviert!“:

Das Plugin ist erfolgreich aktiviert.
Um sicherzugehen, dass das Plugin auch wirklich korrekt arbeitet, prüfen Sie die folgenden Punkte:
Fehlerdiagnose: Wenn nichts passiert
Falls keine Ausgabe erfolgt oder WordPress das Plugin nicht erkennt, können verschiedene Ursachen verantwortlich sein. Hier sind einige der häufigsten Fehlerquellen:
Mögliche Ursache | Lösung |
|---|---|
Plugin nicht aktiviert | In der Plugin-Übersicht auf „Aktivieren“ klicken |
Header nicht korrekt | Prüfen Sie, ob ein Wert bei „Plugin Name:“ im Header-Kommentarblock vorhanden ist |
PHP-Syntaxfehler | Fehler im Editor korrigieren, siehe Code-Beispiel oben |
Hook falsch geschrieben | Statt admin_notice muss es admin_notices heißen |
Funktionsname nicht identisch | Funktion und add_action-Eintrag müssen exakt übereinstimmen |
Plugin erweitern und Struktur aufbauen
WordPress bietet Ihnen einfache, modulare Wege, um Ihr Plugin Schritt für Schritt zu erweitern. Bereits mit wenigen zusätzlichen Zeilen Code können Sie neue Funktionen integrieren, die Ihrer Website echten Mehrwert bringen. Das kann z. B. über Shortcodes oder eine eigene Einstellungsseite für Ihr Plugin geschehen.
Shortcodes erstellen
Shortcodes sind Textbausteine in eckigen Klammern wie [mein_shortcode], die Inhalte an beliebiger Stelle einfügen. Sie eignen sich für Texte, Hinweise oder wiederkehrende Elemente im Editor.
Haben Sie die Funktion mein_shortcode_text erstellt, fügen Sie [mein_shortcode] in einen Beitrag oder eine Seite ein. WordPress ersetzt ihn beim Laden durch den gewünschten HTML-Text.
Einstellungsseite im WordPress-Backend
Sobald Ihr Plugin konfigurierbare Inhalte braucht (z. B. Texte, Farben, Optionen), lohnt sich eine eigene Einstellungsseite. Das folgende Beispiel nutzt die WordPress Settings API und speichert einen Textwert als Option:
In den WordPress-Einstellungen erscheint so unter „Mein Plugin“ eine eigene Seite mit Eingabefeld:

Eine einfache Einstellungsseite ist schnell erstellt.
Plugins mit mehreren Dateien
Ein WordPress-Plugin besteht in der Regel aus mehreren Dateien. Sobald mehr als „ein paar Funktionen“ dazukommen, zahlt sich eine klare Struktur aus. Eine typische, gut wartbare Plugin-Struktur sieht so aus:
Diese Struktur entspricht dem Standard vieler Plugins. Damit trennen Sie Admin-Code (z. B. Menüs, Settings) sauber von Frontend-Code (z. B. Shortcodes, Widgets) und behalten bei Updates und Erweiterungen die Übersicht.
PHP-Code in andere Dateien auslagern
Lagern Sie Funktionen aus der Hauptdatei in eigene Dateien im includes/-Ordner aus und binden Sie sie mit include_once ein. Das sorgt für mehr Übersicht, kürzere Dateien und reduziert Redundanz bei wachsenden Codebasen.
CSS und JavaScript korrekt einbinden
CSS- und JavaScript-Dateien sollten Sie nicht manuell über <link> oder <script> einbinden. Nutzen Sie stattdessen die WordPress-Funktionen wp_enqueue_style() und wp_enqueue_script():
Wichtig: Verwenden Sie plugin_dir_url(__FILE__) zur dynamischen Pfadermittlung. So bleibt Ihr Plugin unabhängig vom Installationsverzeichnis.
Best Practices beachten
Je größer ein Plugin wird, desto wichtiger ist es, strukturiert und vorausschauend zu arbeiten. Schon bei kleinen Erweiterungen sollten Sie bewährte Grundregeln einhalten.
Das hilft nicht nur, technische Fehler zu vermeiden, sondern erleichtert auch spätere Wartung, Erweiterungen oder eine Veröffentlichung. Die folgenden Best Practices sind dafür ein guter Einstieg.
Vermeiden Sie generische Funktionsnamen
Vermeiden Sie Funktionsnamen wie load_settings() oder save_data(). In einem WordPress-System laufen potenziell Dutzende Plugins. Funktionskonflikte sind ein häufiger Fehlergrund.
Verwenden Sie stattdessen eindeutige Namenskonventionen:
Alternativ können Sie Namespaces verwenden, besonders bei größeren Projekten:
Schützen Sie jede PHP-Datei vor direktem Zugriff
Verhindern Sie den direkten Aufruf Ihrer Dateien über den Browser, indem Sie am Anfang jeder PHP-Datei prüfen, ob WordPress geladen wurde:
Diese Bedingung verhindert, dass jemand Ihre Datei direkt über den Browser aufruft und potenziell ungesicherte Funktionen ausführt.
Validieren Sie Eingaben und escapen Sie Ausgaben
Nutzen Sie die vorhandenen Funktionen des WordPress-Core, um Benutzereingaben abzusichern:
Aktion | WordPress-Funktion |
|---|---|
Texte validieren | sanitize_text_field() |
URLs validieren | esc_url_raw() |
HTML ausgeben | esc_html() |
Attribute escapen | esc_attr() |
SQL absichern | $wpdb->prepare() |
Ungefilterte Eingaben stellen ein ernsthaftes Sicherheitsrisiko dar. Sicherheitslücken wie XSS, CSRF oder SQL-Injection vermeiden Sie weitgehend durch konsequente Datenvalidierung.
Nutzen Sie konsequent die WordPress-APIs
Greifen Sie bei Datenbankzugriffen, Formularfeldern, Optionen und Benutzerrollen stets auf die Core-APIs zurück. Diese Funktionen sind nicht nur sicherer, sondern auch zukunftssicher:
get_option(), update_option()
wp_nonce_field(), check_admin_referer()
$wpdb->insert(), $wpdb->prepare()
Vermeiden Sie hingegen direkte Datenbankabfragen per mysqli_query() oder mysql_query(). Diese Methoden sind unsicher und in modernen WordPress-Versionen veraltet.
Planen Sie Internationalisierung frühzeitig ein (i18n)
Wenn Sie planen, Ihr Plugin auch in anderen Sprachversionen anzubieten, sollten Sie Internationalisierung von Anfang an einplanen:
- 1.
Fügen Sie im Header das Feld „Text Domain: mein-plugin“ hinzu (Kennung für Übersetzungen)
- 2.
Verwenden Sie __() und _e() für alle Texte
- 3.
Legen Sie .pot/.mo/.po-Dateien im Ordner languages/ ab
So stellen Sie von Anfang an sicher, dass Ihr Plugin mit gängigen Übersetzungstools wie Loco Translate oder WPML kompatibel ist.
Dokumentieren und warten Sie Ihr Plugin regelmäßig
Dokumentieren Sie Logik im Code mit Kommentaren. Das erleichtert nicht nur Ihnen, sondern auch allen künftigen Nutzern und Mitentwicklern die Arbeit.
Zusätzlich empfiehlt sich eine strukturierte readme.txt-Datei im Format des WordPress-Plugin-Verzeichnisses, wenn Sie Ihr Plugin veröffentlichen möchten.
Ein nicht gepflegtes Plugin verliert mit jeder neuen WordPress-Version an Zuverlässigkeit. Planen Sie regelmäßige Tests und Updates ein, mindestens bei jedem größeren Core-Update.
Fazit: Mehr Kontrolle durch eigene Plugins
Das Fundament steht: Sie haben Ihr erstes eigenes WordPress-Plugin erstellt – und damit einen entscheidenden Schritt gemacht. Sie verstehen nun nicht nur, wie WordPress funktioniert, sondern auch, wie Sie das System gezielt erweitern. Das unterscheidet Anwender von Entwicklern.
Ein eigenes Plugin ermöglicht Ihnen nicht nur mehr Kontrolle über Ihre Website, sondern macht Sie auch unabhängig von oft überladenen Drittanbieter-Erweiterungen. Sie entscheiden selbst, was und wann in welchem Umfang passiert.
Wie geht es jetzt weiter? Mit den hier gezeigten Grundlagen haben Sie eine stabile Basis geschaffen. Darauf können Sie aufbauen – etwa mit weiterführenden Konzepten wie:
Custom Post Types
eigene Gutenberg-Blöcke
Multisite-Kompatibilität
Plugin-Deployment via GitHub oder WordPress.org
WordPress gibt Ihnen die nötigen Werkzeuge an die Hand. Wenn Sie strukturiert arbeiten und bewährte Best Practices einhalten, können Sie Ihr Plugin Schritt für Schritt weiterentwickeln.












