WordPress-Plugin im offiziellen Plugin-Verzeichnis veröffentlichen
Von der Vorbereitung bis zum ersten Update: welche Regeln gelten, wie die readme.txt aussieht, was bei der Prüfung passiert und wie Versionen per SVN ausgeliefert werden.
Ein WordPress-Plugin veröffentlichen Sie im offiziellen Verzeichnis, indem Sie es als ZIP-Datei über die Einreichungsseite auf wordpress.org hochladen. Freiwillige aus dem Plugin-Review-Team prüfen den Code manuell. Nach der Freigabe erhalten Sie Zugang zu einem SVN-Repository, über das Sie das Plugin und alle späteren Updates ausliefern. Das Verzeichnis ist kostenlos, verlangt aber eine GPL-kompatible Lizenz und das Einhalten der Plugin-Richtlinien.
Lohnt sich das Verzeichnis?
Für die meisten Plugins ja. Es ist der Vertriebsweg mit der größten Reichweite, denn jede WordPress-Installation durchsucht das Verzeichnis direkt im Adminbereich. Dazu kommen automatische Update-Benachrichtigungen, ein Support-Forum, Bewertungen und Übersetzungen über translate.wordpress.org. Der Preis dafür sind feste Regeln und eine öffentliche Lizenz.
Die Richtlinien in Kurzform
Bevor Sie einreichen, lesen Sie die vollständigen Plugin-Richtlinien im Developer-Handbuch. Die Punkte, an denen Einreichungen am häufigsten scheitern:
| Regel | Was sie bedeutet |
|---|---|
| GPL-kompatible Lizenz | Code, Bilder und Bibliotheken müssen unter einer GPL-kompatiblen Lizenz stehen |
| Kein Trialware | keine im Code vorhandenen Funktionen, die erst nach Zahlung freigeschaltet werden oder nach einer Zeit ablaufen |
| Kein Tracking ohne Zustimmung | Daten dürfen nur nach Opt-in an externe Server gehen |
| Kein nachgeladener Code | ausführbarer Code darf nicht von fremden Servern geladen werden, Updates nur über wordpress.org |
| Lesbarer Code | kein verschleierter oder unnötig minimierter Code ohne Quellen |
| Keine Frontend-Credits ohne Opt-in | „Powered by“-Links auf der Website nur, wenn Betreiber das aktiv einschalten |
| Keine Markenverletzung | fremde Marken nicht an den Anfang von Name oder Slug stellen |
| Kein Spam im Admin | Hinweise und Werbung im Adminbereich zurückhaltend und ausblendbar |
Wie Sie eine passende Lizenz auswählen, erklärt der Artikel Open-Source-Lizenz für Plugins wählen.
Schritt 1: Code vorbereiten
Prüfen Sie Ihr Plugin vor der Einreichung gründlich:
- Sicherheit: Rechteprüfungen, Nonces, bereinigte Eingaben und escapte Ausgaben sind die häufigsten Gründe für Rückfragen. Der Artikel WordPress-Plugin absichern zeigt die nötigen Funktionen.
- Präfixe: alle Funktionen, Klassen, Optionen und Konstanten mit einem eindeutigen, ausreichend langen Präfix.
- Eingebundene Bibliotheken: keine Kopien von Bibliotheken, die WordPress selbst mitliefert, etwa jQuery. Nutzen Sie die vorhandenen Versionen.
- Skripte und Styles: über
wp_enqueue_script()undwp_enqueue_style()laden, nicht hart in die Seite schreiben. - Plugin Check: Das Plugin „Plugin Check“ des Review-Teams prüft viele Regeln automatisch. Beheben Sie alle Fehler, bevor Sie einreichen.
Das Grundgerüst eines sauberen Plugins beschreibt der Artikel WordPress-Plugin erstellen.
Schritt 2: Die readme.txt schreiben
Die readme.txt im Hauptordner erzeugt die Seite Ihres Plugins im Verzeichnis. Sie folgt einem festen Format:
=== Hinweisbox ===
Contributors: ihrbenutzername
Tags: hinweis, shortcode, infobox
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Gibt per Shortcode einen einstellbaren Hinweistext aus.
== Description ==
Ausführliche Beschreibung mit Funktionen und Einsatzbeispielen.
== Installation ==
1. Plugin installieren und aktivieren.
2. Unter Einstellungen > Hinweisbox den Text festlegen.
== Frequently Asked Questions ==
= Funktioniert das Plugin mit jedem Theme? =
Ja, die Ausgabe nutzt einfache HTML-Elemente.
== Changelog ==
= 1.0.0 =
* Erste Veröffentlichung.
Die Versionsnummern im Beispiel sind Platzhalter. Wichtige Hinweise zu den Feldern:
- Contributors enthält Benutzernamen von wordpress.org, keine Klarnamen.
- Tags sollten wenige, wirklich passende Begriffe sein. Das Verzeichnis berücksichtigt nur eine kleine Zahl davon.
- Tested up to nennt die neueste WordPress-Version, mit der Sie getestet haben. Ist der Wert veraltet, sehen Nutzer einen Hinweis.
- Stable tag bestimmt, welche Version ausgeliefert wird. Dazu mehr unten.
- Die Kurzbeschreibung direkt unter dem Kopf ist auf etwa 150 Zeichen begrenzt.
Der Readme-Validator auf wordpress.org prüft das Format vor dem Upload.
Schritt 3: Einreichen
Melden Sie sich mit Ihrem wordpress.org-Konto an und laden Sie das Plugin als ZIP über die Einreichungsseite im Developer-Bereich hoch. Achten Sie dabei auf:
- Den Plugin-Namen im Header: Aus ihm leitet das System den Slug ab, der später nicht mehr geändert werden kann.
- Ein Konto mit erreichbarer E-Mail-Adresse: Rückfragen kommen per E-Mail.
- Kontosicherheit: Konten, die Plugins verwalten, sollten mit Zwei-Faktor-Authentifizierung geschützt sein. wordpress.org verlangt für Commit-Zugänge erhöhte Sicherheit und eigene SVN-Passwörter.
Der Upload startet bereits automatische Prüfungen. Schlagen sie fehl, erhalten Sie direkt eine Rückmeldung.
Schritt 4: Die manuelle Prüfung
Ein Mitglied des Review-Teams liest Ihren Code. Findet es Probleme, erhalten Sie eine E-Mail mit konkreten Stellen und Hinweisen. Antworten Sie auf diese E-Mail, nachdem Sie die Punkte behoben und eine neue Version hochgeladen haben. Diskussionen über die Regeln selbst helfen selten, sachliche Rückfragen zum Verständnis dagegen schon.
Fehlende Escaping-Funktionen bei Ausgaben, ungeprüfte Eingaben aus $_POST und $_GET, fehlende Rechteprüfungen in AJAX- oder REST-Endpunkten, zu kurze oder fehlende Präfixe, mitgelieferte Kopien von Kernbibliotheken und das Laden externer Dateien ohne Not. Wer diese Punkte vorab prüft, verkürzt die Wartezeit erheblich.
Schritt 5: Code per SVN hochladen
Nach der Freigabe erhalten Sie ein Subversion-Repository unter https://plugins.svn.wordpress.org/<slug>/. Es hat drei Hauptordner:
| Ordner | Inhalt |
|---|---|
trunk/ |
aktueller Entwicklungsstand |
tags/ |
eine unveränderliche Kopie je veröffentlichter Version, etwa tags/1.0.0/ |
assets/ |
Banner, Icons und Screenshots für die Verzeichnisseite, nicht Teil des Plugins |
Der erste Upload sieht typischerweise so aus:
svn checkout https://plugins.svn.wordpress.org/hinweisbox hinweisbox-svn
cd hinweisbox-svn
# Plugin-Dateien nach trunk/ kopieren
svn add trunk/*
svn copy trunk tags/1.0.0
svn commit -m "Version 1.0.0"
Für den Commit melden Sie sich mit Ihrem wordpress.org-Benutzernamen und dem SVN-Passwort aus Ihrem Profil an. Bis die Seite aktualisiert ist, können einige Minuten vergehen.
Schritt 6: Updates veröffentlichen
Bei jeder neuen Version gehen Sie gleich vor:
- Versionsnummer erhöhen im Plugin-Header und im Changelog der
readme.txt. - Dateien in trunk aktualisieren und neue oder gelöschte Dateien mit
svn addbeziehungsweisesvn deleteerfassen. - Tag anlegen mit
svn copy trunk tags/1.1.0. - Stable tag anpassen in der
readme.txtim trunk auf die neue Version. - Committen: Erst jetzt erhalten Nutzer die Update-Benachrichtigung.
Der Stable tag verweist auf einen Ordner unter tags/. So können Sie in trunk weiterarbeiten, ohne dass unfertiger Code an Nutzer geht. Viele Entwickler pflegen den Code in Git und spielen Releases per Skript oder fertiger CI-Automatisierung nach SVN aus.
Assets für die Verzeichnisseite
Im Ordner assets/ liegen Banner, Icon und Screenshots. Die Dateinamen folgen festen Mustern, etwa banner-772x250.png, icon-256x256.png oder screenshot-1.png. Screenshots erhalten ihre Beschriftung aus dem Abschnitt == Screenshots == der readme.txt. Die genauen Größen und Formate stehen im Developer-Handbuch.
Nach der Veröffentlichung
- Support-Forum beobachten: Unbeantwortete Fragen wirken auf der Verzeichnisseite ungünstig.
- Tested up to aktuell halten: Vor jeder größeren WordPress-Version testen und den Wert anheben. Dafür reicht eine geänderte
readme.txt, ohne neue Version. - Sicherheitsmeldungen ernst nehmen: Bei gemeldeten Lücken kann das Team ein Plugin vorübergehend schließen, bis eine korrigierte Version vorliegt.
- Übersetzungen ermöglichen: Mit korrekter Text Domain können Freiwillige Ihr Plugin auf translate.wordpress.org übersetzen.
Wer sein Plugin finanzieren möchte, findet Modelle wie Freemium oder Spenden im Bereich Add-ons veröffentlichen und pflegen.
Fragen und Antworten
- Kostet die Veröffentlichung im Plugin-Verzeichnis etwas?
- Nein. Der Eintrag im Verzeichnis ist kostenlos. Sie benötigen lediglich ein Konto auf wordpress.org. Kostenpflichtige Zusatzversionen dürfen Sie außerhalb des Verzeichnisses anbieten, solange das kostenlose Plugin vollständig nutzbar bleibt.
- Wie lange dauert die Prüfung?
- Das hängt stark von der Länge der Warteschlange und vom Zustand Ihres Codes ab. Die Spanne reicht von wenigen Tagen bis zu mehreren Wochen. Jede Rückfrage verlängert den Vorgang, deshalb lohnt es sich, vorher mit dem Plugin Check die bekannten Probleme selbst zu beheben.
- Kann ich den Slug meines Plugins später ändern?
- Nach der Freigabe nicht mehr. Der Slug wird aus dem Plugin-Namen abgeleitet und ist Teil der Adresse und des SVN-Pfads. Wenn Sie ihn ändern wollen, müssen Sie das während der Prüfung mit dem Review-Team klären.
- Darf mein Plugin Daten an meinen Server senden?
- Nur mit ausdrücklicher Zustimmung der Nutzer, etwa über ein Opt-in, und mit klarer Erklärung in der readme.txt. Tracking ohne Einwilligung ist nach den Richtlinien verboten. Dienste, die für die Funktion nötig sind, etwa eine externe Schnittstelle, müssen ebenfalls dokumentiert sein.
Weiterlesen
- Plugin erstellen
Vom leeren Ordner zum funktionierenden Plugin: Header, Ordnerstruktur, Aktivierungs-Hook, ein Shortcode mit Einstellung und eine saubere uninstall.php.
- Plugin absichern
Rechteprüfung, Nonces, Sanitizing und Escaping: welche WordPress-Funktion wann greift, mit Beispielen für Formulare, AJAX, REST-Endpunkte und Datenbankabfragen.
- Lizenz für Plugins wählen
GPL, MIT und Apache 2.0 im Vergleich: was die Lizenzen erlauben und verlangen, welche Plattform welche Lizenz voraussetzt und wie Sie eine Lizenz sauber im Projekt hinterlegen.