Das erste Plugin bei WordPress.org

Meine erste Berührung mit WordPress war tatsächlich das Schreiben eines Plugin. Dieses wollte ich natürlich dann auch der Allgemeinheit zur Verfügung stellen. Damals waren die Anleitungen hierzu noch nicht so gut wie heute, aber ich habe es dennoch geschafft. Damit ihr es einfacher habt, hier die wichtigsten Schritte.

1. Schritt: Erstellen eines WordPress.org Accounts

Jedes Plugin gehört einem Nutzer. Um also ein Plugin einzurichten müsst ihr über einen aktiven WordPress.org Nutzer-Account verfügen. Die Registrierung ist einfach über das englischsprachige Registrierungsformular möglich.

2. Schritt: Ein Plugin fertigstellen

Ihr könnt nur dann ein Plugin einreichen, wenn ihr bereits eine lauffähige Version davon fertiggestellt habt, denn ihr müsst bei der Einreichung ein ZIP-Archiv hochladen, das dann manuell vom Plugin-Team überprüft wird.

Beim Schreiben eines Plugins solltet ihr euch an die WordPress-Coding-Standards halten, die im Plugin-Handbook beschrieben sind. Als deutschsprachige Entwickler solltet ihr auch besonders auf die Übersetzbarkeit eures Plugins achten. Die Basissprache sollte hierbei immer Englisch sein. Tipps zur sogenannten Internationalisierung (englisch „Internationalization“), oder abgekürzt I18N, findet ihr ebenfalls im Handbuch.

Für die Aufnahme in das offizielle Plugin-Verzeichnis ist eine Datei besonders wichtig, die ihr sonst nicht unbedingt braucht: eine Readme-Datei. In dieser sind alle Informationen enthalten, die ihr auf den Detailseiten der Plugins im Plugin-Verzeichnis sehen könnt. Die Datei kann im TXT-Format mit einer Markdown-ähnlichen Syntax oder auch seit einiger Zeit direkt im Markdown-Format erstellt werden. Habt ihr eine solche Datei also beispielsweise schon in einem Git-Repository, könnt ihr diese weiterverwenden. Ihr müsst sie nur entsprechen um die typischen Angaben für ein WordPress-Plugin erweitern.

In der Readme-Datei könnt ihr auch Bilder angeben, die ihr in der Beschreibung zu eurem Plugin verwenden möchtet.

3. Schritt: Voraussetzungen für die Veröffentlichung des Plugins auf WordPress.org prüfen

Die wichtigste Voraussetzung für die Aufnahme eures Plugins in das Verzeichnis auf WordPress.org ist, dass das Plugin unter der richtigen Lizenz steht. Im einfachsten Fall habt ihr dieselbe Lizenz wie WordPress gewählt, die sogenannte GPLv2 (or later). Ihr könnt auch eine andere Open-Source-Lizenz wählen, müsst dann aber prüfen, ob diese zur GPLv2 kompatibel ist. Viele Entwickler verwenden die neue GPLv3 Lizenz für ihre Plugins (und Themes).

Neben der Lizenz sind auch markenrechtliche Gesichtspunkte zu beachten. So ist die Markenbezeichnung „WordPress“ geschützt. Auch andere Markennamen, etwa von anderen Plugins, dürfen nicht in einer Weise verwendet werden, die den Nutzer glauben macht, dass es sich um ein offizielles Plugin des Markeninhaber handelt.

Hierzu ein einfaches Beispiel. Wollt ihr etwa ein Plugin schreiben, das WooCommerce erweitert, dürft ihr keinen Namen nach dem Muster „WooCommerce Social Sharing“ verwenden. In Ordnung wäre ein Name wie  „Social Sharing for WooCommerce“. Hierbei ist zu beachten, dass es durchaus ältere Plugins gibt, die einen solchen Namen haben. Solltet ihr aber versuchen, ein Plugin mit einem solchen Namen neu zu registrieren, wird es vermutlich abgelehnt werden. Das Wort „Plugin“ sollte im Namen eures Plugins im Übrigen auch nicht vorkommen.

Insgesamt werden aktuell im Handbuch 18 Richtlinen gelistet, an die ihr euch halten müsst. Diese solltet ihr euch vorher genau durchlesen, damit euer Plugin auch sicher angenommen wird.

4. Schritt: Das Plugin einreichen

Habt ihr alle Vorbereitungen getroffen, könnt ihr das Plugin endlich einreichen. Hierzu findet ihr bei WordPress.org ein entsprechendes Formular, über das ihr eure fertige ZIP-Datei hochladen könnt.

Achtet hierbei darauf, dass der Name des Plugins korrekt ist. Er entspricht dem späteren Verzeichnisnamen des Plugins. Während der Plugin-Name geändert werden kann, ist das für den Verzeichnisnamen aktuell nicht möglich.

Nach dem Absenden des Formulars wird die Einreichung mit einer Nachricht bestätigt, die auch den initialen Verzeichnisnamen enthält. Dieser entspricht nicht unbedingt dem Namen des ZIP-Archivs, sondern wird dynamischen aus dem Pluginnamen erzeugt. Manchmal weicht er ein wenig von diesem ab.

Wie ihr in der Nachricht nachlesen könnt, erhaltet ihr im Anschluss eine E-Mail, in der noch einmal die wichtigsten Informationen zum weitern Vorgehen zusammengefasst werden.

Wenn ihr die Seite mit dem Formular zur Einreichung erneut aufruft, könnt ihr alle Plugins sehen, die ihr eingereicht habt und die sich aktuell noch in der Prüfung befinden.

Nun müsst ihr ein wenig Geduld haben. Die Prüfung dauert in den meisten Fällen etwa einen Tag. Ist euer Plugin umfangreicher, kann es auch sehr viel länger dauern, da gerade bei der initialen Einreichung der Quellcode sehr genau geprüft wird.

5. Schritt: Das Plugin per Subversion aktualisieren

Wenn alles mit eurem Plugin in Ordnung ist, erhaltet ihr vom Plugin-Team eine E-Mail, in der die Aufnahme eures Plugins und das Anlegen eines Subversion-Repositories bestätigt wird:

Congratulations, your plugin hosting request for [plugin name] has been approved.

Within one hour you will have access to your SVN repository with the WordPress.org username and password you used to log in and submit your request. Your username is case sensitive.

https://plugins.svn.wordpress.org/wpmeetup-widget

Das SVN-Repository ist zu diesem Zeitpunkt noch komplett leer. Ihr müsst euer Plugin dort also erst hochladen, damit es gefunden und genutzt werden kann. Hierzu checkt ihr am besten einfach das „trunk“-Verzeichnis des Plugins in ein passend benanntes Verzeichnis aus:

svn co https://plugins.svn.wordpress.org/wpmeetup-widget wpmeetup-widgetCode-Sprache: Bash (bash)

Anschließend kopiert ihr die Dateien eures Plugins in dieses neue Verzeichnis. Nun müsst ihr die Dateien zu Subversion hinzufügen:

svn add *Code-Sprache: Bash (bash)

Im letzten Schritt könnt ihr dann das Plugin schließlich veröffentlichen:

svn commit -m "initial release"Code-Sprache: Bash (bash)

Hat alles funktioniert, könnt ihr schon wenige Sekunden später euer Plugin im offiziellen WordPress.org Plugin-Verzeichnis aufrufen:

Click here to display content from WordPress.org.
Erfahre mehr in der Datenschutzerklärung von WordPress.org.

Bonustipp: Versionen taggen

Wenn ihr das Plugin in Zukunft aktualisieren wollt, könnt ihr das wie gewohnt mit den bekannten Subversion Befehlen tun. Dabei wird dann immer der aktuellste Stand zum Download angeboten. Die Versionsnummer wird hierbei aus der README ausgelesen und sie sollte mit der Versionsnummer in der PHP-Datei mit dem Plugin-Header-Kommentar übereinstimmen.

Möchtet ihr es dem Nutzer ermöglichen, auch ältere eures Plugins dauerhaft zum Download anbieten, könnt ihr die einzelnen Versionen taggen. Hierzu wird der Befehl „svn copy“ verwendet:

svn copy https://plugins.svn.wordpress.org/wpmeetup-widget/trunk \
https://plugins.svn.wordpress.org/wpmeetup-widget/tags/0.4.9 \
-m "tagging version 0.4.9"Code-Sprache: Bash (bash)

6. Schritt: Pflege, Updates und Support

Nachdem ihr nun eure Plugin veröffentlich habt, können es andere Nutzer für ihre WordPress-Websites verwenden. Dabei wird es früher oder später auch mal bei dem ein oder anderen Nutzern zu Fragen oder Problemen kommen. Diese können im Support-Forum gestellt werden, das jedes Plugin automatisch bekommt. Ihr solltest euch am besten hierzu für die neuen Nachrichten ein Abo per E-Mail oder RSS-Feed einrichten, damit ihr es zeitnah mitbekommt.

Sollte es Änderungsbedarf geben, könnt ihr das Plugin wie zuvor erwähnt aktualiseren und die neue Version taggen. Ihr solltet dabei darauf achten, dass ihr nach Möglichkeit nicht zu viele Updates in einem zu kurzen Zeitraum macht. Zumindest bei jedem größeren WordPress-Update solltet ihr aber ein Update machen, in dem ihr die Angabe im Plugin aktualisiert, ob es mit der neuen WordPress Version kompatibel ist.

Sollte es in eurem Plugin Strings geben, die zu übersetzen sind, solltet ihr euch auch nach der Veröffentlichung und nach jedem Update die Zeit nehmen, um die neuen Strings in die Sprachen zu übersetzen, die ihr selbst sprecht.