wordpress

WordPress Plugin entwickeln: Anleitung für sichere, wartbare Plugins

Von der Entwicklungsumgebung bis zum Release: So entwickeln Sie ein WordPress Plugin, das sicher, schnell, DSGVO-tauglich und langfristig wartbar ist.

Von AYM FlowVeröffentlicht: Aktualisiert: 6 Min. Lesezeit

Ein eigenes WordPress Plugin zu entwickeln ist der sauberste Weg, individuelle Funktionen in eine Website zu bringen, ohne dass sie beim nächsten Theme-Wechsel verloren gehen. Dieser Leitfaden zeigt den Weg von der Entwicklungsumgebung über Struktur, Hooks und Sicherheit bis zum Release. Er basiert auf unserer Erfahrung mit eigenen, lizenzierten Plugins und mit Kundenprojekten.

Entwicklungsumgebung und Grundlagen

Sie benötigen eine lokale WordPress-Installation, zum Beispiel mit Docker, wp-env oder einem Tool wie LocalWP, außerdem PHP 8.x, Git und einen Editor mit PHP-Unterstützung. Aktivieren Sie in der Entwicklung WP_DEBUG und WP_DEBUG_LOG, damit Warnungen nicht unbemerkt bleiben. Richten Sie früh PHP_CodeSniffer mit dem WordPress-Regelwerk ein. So halten Sie die offiziellen Coding Standards von Beginn an ein.

Ein sinnvoller Start ist eine kurze Beschreibung in Anwenderperspektive: Wer nutzt das Plugin, was soll es leisten, und was gehört ausdrücklich nicht dazu? Damit vermeiden Sie, dass das Plugin zum Alleskönner wächst. Entwickeln Sie zuerst den kleinsten nützlichen Funktionsumfang, prüfen Sie ihn auf einer Testinstallation und erweitern Sie danach schrittweise.

Aufbau eines Plugins

Ein Plugin ist im Kern ein Ordner in wp-content/plugins mit einer Hauptdatei. Deren Kopfkommentar enthält Plugin Name, Version, Requires at least, Requires PHP, Text Domain und Lizenz. Wählen Sie einen eindeutigen Präfix oder Namespace für alle Funktionen, Klassen und Optionen, um Kollisionen mit anderen Plugins zu vermeiden.

  • Hauptdatei: lädt nur die Autoloader-Logik und registriert Aktivierungs- und Deaktivierungs-Hooks.
  • includes/ oder src/: Klassen für Logik, Admin-Oberfläche und Frontend, getrennt nach Verantwortung.
  • assets/: Skripte und Styles, nur dort geladen, wo sie gebraucht werden.
  • languages/: Übersetzungsdateien für die Text Domain.
  • uninstall.php: räumt Optionen und eigene Tabellen auf, wenn das Plugin gelöscht wird.

Beginnen Sie jede PHP-Datei mit einer Prüfung auf die Konstante ABSPATH, damit sie nicht direkt aufgerufen werden kann.

Hooks, Einstellungen und REST-API

WordPress arbeitet mit Actions und Filtern. Mit add_action reagieren Sie auf Ereignisse, mit add_filter verändern Sie Daten, bevor sie weiterverarbeitet werden. Greifen Sie nie in Core-Dateien ein, sondern nutzen Sie ausschließlich Hooks.

  • Einstellungen: Nutzen Sie die Settings API mit register_setting und Sanitize-Callback. Das erzeugt konsistente Admin-Seiten und speichert nur geprüfte Werte.
  • Eigene Inhaltstypen: register_post_type und register_taxonomy statt eigener Tabellen, wann immer die Daten inhaltsartig sind.
  • REST-API: Mit register_rest_route stellen Sie Endpunkte bereit. Setzen Sie immer einen permission_callback, sonst ist der Endpunkt öffentlich.
  • Datenbank: Eigene Tabellen nur bei großen, relationalen Datenmengen. Dann ausschließlich mit $wpdb->prepare arbeiten.

Skripte und Styles laden Sie ausschließlich über wp_enqueue_script und wp_enqueue_style, im Frontend über wp_enqueue_scripts, im Admin über admin_enqueue_scripts und dort nur auf den eigenen Seiten. Geben Sie jeder Datei eine Versionsnummer, damit Browser nach Updates die neue Fassung laden. Für Editor-Erweiterungen sind Blöcke mit block.json der moderne Weg und sparen Code gegenüber klassischen Shortcodes.

Sicherheit: Eingaben prüfen, Ausgaben escapen

Die meisten Schwachstellen in Plugins entstehen durch fehlende Prüfungen. Die WordPress-Sicherheitsrichtlinien lassen sich auf vier Regeln verdichten:

  1. Validieren und bereinigen: Eingaben mit sanitize_text_field, absint oder wp_kses_post filtern, bevor Sie sie speichern.
  2. Escapen bei der Ausgabe: esc_html, esc_attr, esc_url oder wp_kses_post verwenden, ohne Ausnahme.
  3. Nonces prüfen: Jede Formular- und AJAX-Aktion braucht wp_nonce_field beziehungsweise check_ajax_referer.
  4. Berechtigungen prüfen: current_user_can vor jeder Aktion, die Daten ändert. Ein Nonce ersetzt keine Rechteprüfung.

Die häufigsten Fehler in der Praxis sind ungeschützte AJAX-Endpunkte, direkt in SQL eingesetzte Variablen, ungeprüfte Datei-Uploads und fehlende Rechteprüfungen in Admin-Aktionen. Alles, was von außen kommt, ist unsicher, auch Daten aus der eigenen Datenbank, bis es bereinigt wurde. Ein Code-Review durch eine zweite Person vor dem Release fängt viele dieser Fehler ab.

Datenschutz und Mehrsprachigkeit von Anfang an

Für Kunden im deutschsprachigen Raum ist DSGVO-Konformität ein Verkaufsargument. Speichern Sie nur Daten, die Sie wirklich brauchen, und rufen Sie keine externen Dienste ohne Wissen der Betreiber auf. Binden Sie Schriftarten und Skripte lokal ein, statt sie von fremden CDNs zu laden. Wenn Ihr Plugin personenbezogene Daten verarbeitet, hinterlegen Sie Text für die Datenschutzerklärung über wp_add_privacy_policy_content und binden Sie die WordPress-Werkzeuge zum Exportieren und Löschen personenbezogener Daten ein. Cookies und Tracking gehören hinter die Einwilligung des Cookie-Consents.

Machen Sie alle sichtbaren Texte über die Funktionen __() und esc_html__() übersetzbar und vergeben Sie eine feste Text Domain. So lässt sich das Plugin später mit wenig Aufwand lokalisieren. Wie mehrsprachige Websites sauber aufgebaut werden, zeigt unser Beitrag zur hreflang-Einrichtung.

Planen Sie früh, wie Ihr Plugin mit anderen Plugins zusammenarbeitet. Prüfen Sie vor dem Anlegen eigener Funktionen, ob WordPress die Aufgabe bereits mit Bordmitteln löst, und vermeiden Sie globale Variablen und Funktionen ohne Präfix. Stellen Sie Erweiterungspunkte bereit, indem Sie eigene Actions und Filter definieren, damit andere Entwickler Ihr Plugin anpassen können, ohne den Code zu ändern. Das macht Ihre Lösung langfristig robuster und für Agenturen attraktiver.

Testen, veröffentlichen und aktualisieren

Testen Sie mit aktuellen und älteren WordPress- und PHP-Versionen, mit gängigen Page Buildern und mit aktiviertem Debug-Modus. Automatisierte Tests mit PHPUnit lohnen sich für Kernlogik, etwa Preisberechnung oder Lizenzprüfung. Pflegen Sie eine readme.txt mit Changelog und nutzen Sie Semantic Versioning.

Denken Sie auch an Geschwindigkeit: Fragen Sie nicht bei jedem Seitenaufruf Datenbank oder externe Schnittstellen ab. Zwischenspeichern Sie Ergebnisse mit Transients oder dem Objekt-Cache und laden Sie Skripte nur dort, wo sie gebraucht werden. Mit dem Plugin Plugin Check, das das WordPress-Team bereitstellt, lassen sich viele Richtlinienverstöße automatisch finden.

Wenn Sie ein kostenpflichtiges Plugin außerhalb von WordPress.org vertreiben, brauchen Sie Lizenzprüfung und eigene Update-Auslieferung. Wie das aufgebaut wird, beschreiben wir im Artikel zum WordPress Plugin Lizenzsystem.

Dokumentieren Sie Installation, Einstellungen und bekannte Einschränkungen in der readme.txt und, wenn Sie Kunden betreuen, in einem kurzen Handbuch. Gute Dokumentation reduziert Supportanfragen spürbar und erleichtert die Übergabe an andere Entwickler.

Selbst entwickeln oder entwickeln lassen?

Kleine Anpassungen und einfache Shortcodes setzen versierte Administratoren oft selbst um. Sobald Sicherheit, Updates, Schnittstellen, Lizenzierung oder Datenschutz eine Rolle spielen, zahlt sich Erfahrung aus: Ein einmal ausgeliefertes Plugin läuft auf Hunderten unterschiedlichen Server- und Theme-Konstellationen.

Unsere WordPress Plugin Entwicklung liefert dokumentierten Quellcode, der Ihnen gehört. Mit AYM Multilingual betreiben wir außerdem selbst ein lizenziertes Plugin im Livebetrieb, siehe AYM Multilingual. Beschreiben Sie uns Ihre Anforderung, und wir geben eine realistische Einschätzung zu Aufwand und Architektur.

Teilen:XLinkedInWhatsApp

Häufig gestellte Fragen

Welche Programmiersprachen brauche ich für ein WordPress Plugin?

Der Kern ist PHP. Für Admin-Oberflächen und Blöcke kommen JavaScript beziehungsweise React hinzu, für das Aussehen CSS. Für Datenabfragen sollten Sie SQL-Grundlagen mitbringen.

Wie lange dauert die Entwicklung eines individuellen Plugins?

Ein einfaches Plugin ist in wenigen Tagen umgesetzt. Plugins mit Admin-Oberfläche, Schnittstellen und Lizenzierung benötigen meist mehrere Wochen. Eine genaue Einschätzung geben wir nach der Analyse.

Ist ein Plugin DSGVO-konform, wenn es keine Cookies setzt?

Nicht automatisch. Auch IP-Adressen, Formulardaten oder Aufrufe externer Dienste sind personenbezogene Datenverarbeitung. Dokumentieren Sie diese in der Datenschutzerklärung und vermeiden Sie unnötige Übertragungen.

Muss ein Plugin im WordPress-Verzeichnis veröffentlicht werden?

Nein. Sie können es privat im Kundenprojekt einsetzen oder selbst vertreiben. Für die Aufnahme in das offizielle Verzeichnis gelten zusätzliche Richtlinien, unter anderem zur GPL-Lizenz.

wordpress

WooCommerce Performance und Conversion optimieren: Mehr Umsatz im Shop

Ein schneller Shop verkauft mehr. Wir zeigen, wie Sie WooCommerce beschleunigen, Produktseiten und Checkout verbessern und rechtlich sauber bleiben.

wordpress

WordPress Plugin Lizenzsystem: Lizenzserver, Aktivierung und Updates aufbauen

So funktioniert ein Lizenzsystem für kostenpflichtige WordPress Plugins: Lizenzserver, Aktivierung pro Domain, Update-Auslieferung, Datenschutz und typische Stolpersteine.

wordpress

WordPress schneller machen: Core Web Vitals verbessern (LCP, INP, CLS)

Langsame Ladezeiten kosten Anfragen und Rankings. Diese Anleitung zeigt, wie Sie WordPress schneller machen und die Core Web Vitals gezielt verbessern.