WordPress: vom Einstieg bis zur Entwicklung · Modul 4: Plugin-Entwicklung

Lektion 8 von 8Text 15 Min.

Testen, versionieren, veröffentlichen

Lernziele
  • automatische Tests für WordPress-Plugins aufsetzen
  • Coding Standards und Plugin Check als Qualitätsprüfung nutzen
  • Versionen nach Semantic Versioning vergeben
  • ein Plugin im Verzeichnis oder privat veröffentlichen und aktualisieren

Ein Plugin ist fertig, wenn es läuft – und bleibt es, wenn es auch nach dem zehnten Update noch läuft. Dafür braucht es mehr als einen Test im Browser: automatische Prüfungen, die bei jeder Änderung zeigen, ob etwas kaputtgegangen ist, klare Versionsnummern, die Nutzern sagen, was sich geändert hat, und einen geordneten Weg der Veröffentlichung. Diese Lektion schließt das Modul mit dem Handwerkszeug ab, das aus einem funktionierenden Plugin ein verlässliches Produkt macht.

1. Die Testpyramide

ErkundenWelche Tests es gibt
Unit-Tests (PHPUnit)IntegrationstestsEnd-to-End (Playwright)Statische AnalysePHPCS + WPCSPlugin Check
Unit-Tests (PHPUnit): Prüfen einzelne Funktionen isoliert, etwa die Preisberechnung. Schnell, viele davon. (1/6 erkundet)
tests/BuchungTest.php
1<?php
2class BuchungTest extends WP_UnitTestCase {
3
4 public function test_ausgebuchter_termin_bekommt_hinweis() {
5 $id = self::factory()->post->create( [ 'post_type' => 'radwerk_termin', 'post_title' => 'Inspektion' ] );
6 update_post_meta( $id, 'ausgebucht', 1 );
7
8 $this->assertSame( 'Inspektion (ausgebucht)', get_the_title( $id ) );
9 }
10}

Tests laufen am bequemsten in wp-env: npm run env start fährt WordPress mit Testdatenbank hoch, und die Tests werden in dieser Umgebung ausgeführt. In einer Pipeline wie GitHub Actions laufen PHPCS, PHPStan und Tests automatisch bei jeder Änderung – für mehrere PHP- und WordPress-Versionen gleichzeitig.

2. Versionen vergeben

Definition 8.1
Semantic Versioning
Versionsnummern der Form MAJOR.MINOR.PATCH. PATCH steigt bei Fehlerbehebungen, MINOR bei neuen, kompatiblen Funktionen, MAJOR bei Änderungen, die bestehende Nutzung brechen können.
ÜbungWelche Stelle erhöhen?
  1. Ein Tippfehler in einer Meldung wird korrigiert

  2. Neuer Block „Terminübersicht“, alles andere bleibt gleich

  3. Der Hook radwerk_termin_gebucht erhält andere Parameter

  4. Eine Sicherheitslücke in der Rechteprüfung wird geschlossen

0 von 4 eingeschätzt
VorhersageWelche Version bekommt das Update?
CHANGELOG.md
1## Aktuell: 2.3.1
2
3- Neu: Filter radwerk_mail_betreff
4- Behoben: Datumsformat in der Bestätigung
5- Keine Änderungen an bestehenden Hooks
Was gibt dieser Code aus? Wählen Sie eine Antwort.

3. Veröffentlichen

Klick-GrafikEin Release Schritt für Schritt
Prüfungen grünVersion erhöhenChangelogPaket bauenAusliefern
Schritt 1/5 · Prüfen: Tests, PHPCS, PHPStan und Plugin Check laufen ohne Fehler; kurz auf einer Staging-Website ausprobiert.
Tab. 8.1Wege der Veröffentlichung
WegGeeignet für
Plugin-Verzeichnis wordpress.orgöffentliche, kostenlose Plugins; Prüfung durch das Plugin-Team
Eigener Update-ServerPlugins für Kunden; Updates über die Plugin-Update-URI
Composer (z. B. privates Repository)Agenturen, die Websites per Code verwalten
ZIP-DateiEinzelfälle – Updates müssen manuell eingespielt werden
Automatisch prüfen, bewusst versionieren, verständlich dokumentieren. Ein Plugin ohne Tests und Changelog ist ein Prototyp – mit beidem wird es ein Produkt.

4. Ein Beispiel

Das Terminplugin des Fahrradladens läuft inzwischen auch bei drei befreundeten Werkstätten. Jede Änderung löst eine Pipeline aus, die PHPCS, PHPStan und 60 Tests unter PHP 8.1 bis 8.4 und den beiden letzten WordPress-Versionen ausführt. Ein privater Update-Server stellt neue Versionen bereit, die Werkstätten sehen Updates wie gewohnt im Backend. Als eine Änderung an einem Hook zwei Zusatz-Plugins gebrochen hätte, schlug ein Integrationstest an – die Änderung wurde auf Version 2.0 verschoben und vorher angekündigt.

Kompatibilität und Pflege nach dem Release

Mit der Veröffentlichung beginnt die Pflege. WordPress erscheint mehrmals im Jahr in neuen Versionen, PHP jährlich. Ein gepflegtes Plugin wird vor jeder WordPress-Version mit den Vorabversionen getestet – die Beta- und Release-Candidate-Phasen sind genau dafür gedacht – und die Angabe „Tested up to“ in der readme.txt aktualisiert. Veraltete Funktionen erkennt man an Hinweisen im Debug-Protokoll; sie sollten ersetzt werden, bevor sie entfernt werden. Für eigene Hooks und Funktionen gilt dasselbe in umgekehrter Richtung: Wer etwas entfernen möchte, markiert es zunächst mit _deprecated_function oder _deprecated_hook als veraltet und entfernt es erst in der nächsten Major-Version.

Sicherheitsmeldungen verdienen besondere Aufmerksamkeit. Eine Adresse für Meldungen – etwa in einer security.txt oder über ein Programm wie das von Patchstack oder Wordfence – sorgt dafür, dass Lücken zuerst bei Ihnen landen und nicht öffentlich. Korrekturen werden schnell als Patch veröffentlicht, im Changelog klar benannt und bei gravierenden Lücken im Verzeichnis zusätzlich an das Plugin-Team gemeldet, das automatische Updates auslösen kann. Ein Plugin, dessen Betreuung endet, sollte das offen sagen: Im Verzeichnis lässt es sich schließen oder an neue Betreuer übergeben.

Hilfreich ist auch ein Blick auf die Nutzung. Im Verzeichnis zeigt die Statistik, welche PHP- und WordPress-Versionen verbreitet sind. Die Mindestanforderungen sollten nicht höher sein als nötig, aber auch keine Versionen unterstützen, die seit Jahren keine Sicherheitsupdates mehr bekommen – das erschwert Tests und bindet unnötig Zeit.

5. Häufige Fragen

Lohnen sich Tests für ein kleines Plugin? Schon wenige Tests für die wichtigsten Abläufe sparen viel Zeit, weil sie Fehler vor dem Kunden finden. PHPCS mit den WordPress-Regeln sollte immer laufen – es findet nebenbei viele Sicherheitslücken.

Wie lange dauert die Prüfung im Verzeichnis? Das schwankt zwischen wenigen Tagen und einigen Wochen. Wer vorher Plugin Check laufen lässt und die Richtlinien beachtet, kommt deutlich schneller durch.

Was gehört in die readme.txt? Kurzbeschreibung, ausführliche Beschreibung, Installation, häufige Fragen, Changelog, getestete WordPress-Version (Tested up to) und die stabile Version. Sie ist die Produktseite im Verzeichnis.

6. Übung zum Selbermachen

Installieren Sie in Ihrer lokalen Umgebung PHPCS mit dem Regelwerk WordPress-Coding-Standards über Composer und lassen Sie es auf Ihr Übungsplugin los. Beheben Sie alle Meldungen zu Sicherheit (Escaping, Nonces, prepare) und notieren Sie, welche Sie übersehen hätten. Installieren Sie danach das Plugin Plugin Check in Playground, prüfen Sie Ihr Plugin und vergeben Sie für Ihre Korrekturen die passende Versionsnummer mit Eintrag im Changelog.

Quellen und weiterführende Literatur
  1. [1]WordPress.org (2026): Plugin Handbook – Testing, Releasing Your Plugin, How Your Plugin Assets Work, readme.txt.
  2. [2]WordPress.org (2026): WordPress Coding Standards for PHP_CodeSniffer. github.com/WordPress/WordPress-Coding-Standards.
  3. [3]WordPress.org (2026): Plugin Check (PCP). wordpress.org/plugins/plugin-check.
  4. [4]Preston-Werner, T. (2013): Semantic Versioning 2.0.0. semver.org.

Stand: September 2026, WordPress 7.1, PHP 8.3. Kursmaterial der Klarwerk Akademie. WordPress entwickelt sich schnell – maßgeblich ist die aktuelle Dokumentation auf developer.wordpress.org.

Abschlussquiz

Drei Fragen – dann ist die Lektion geschafft.

Frage 1 von 3

Neue kompatible Funktion – welche Stelle steigt?