WordPress-Plugins als Eigenentwicklung kommen immer dort zum Einsatz, wo einem der WordPress-Plugin-Store und Plattformen wie Envato nicht weiterhelfen. Die spezifischen Anforderungen des Kunden an seine WordPress Seite führt dazu, dass ein Custom Plugin entwickelt wird. Dieses soll in aller Regel nicht im öffentlichen Plugin-Store auftauchen, sondern privat bleiben.
Die Erstinstallation von privaten WordPress-Plugins wird in der Regel über den manuellen Direktupload einer Zip-Datei oder per (S)FTP vorgenommen. Nach der Aktivierung lässt sich das selbstentwickelte WordPress-Plugin so ganz normal nutzen.
Aktualisierung von selbstentwickelten WordPress-Plugins
Doch wie hält man diese privaten Plugins aktuell?
Zum Verteilen von Updates an selbstentwickelte WordPress-Plugins gibt es unterschiedliche Möglichkeiten. Die beiden Erstgenannten kommen auch bei der Installation selbst zum Einsatz.
- Direktupload
- (S)FTP-Upload
- zentraler Update-Server
Direktupload
Diese Update-Methode kann auch von WordPress-Administratoren ohne eigene Programmiererfahrung korrekt durchgeführt werden. WordPress prüft dabei auch, ob das Plugin grundsätzliche Kompatibilität aufweist. Man benötigt das programmierte Plugin als Zip-Datei vom Webentwickler.
Hierbei wird die neue Version des Plugins über die Upload-Funktion hochgeladen. WordPress erkennt, dass es sich um dasselbe Plugin in einer neuen Version handelt und schlägt vor, die bestehende ältere Version des Plugins zu ersetzen.
(S)FTP-Upload
Beim Update über (S)FTP bedarf es schon mehr Vorsicht. Der Quellcode des bereits aktiven Plugins wird dabei von außen überschrieben. Inkompatibler PHP-Code oder WordPress Versionen schlagen direkt durch und können unmittelbar zu Ausfällen führen.
Dieses Vorgehen lässt sich jedoch automatisieren und das Risiko durch übliche Methoden in der Webentwicklung - wie automatisierten Tests - senken.
Zentraler Update-Server
Seit Version 5.8 von WordPress gibt es die Möglichkeit für Plugin-Entwickler eine eigene Update-URL im Plugin zu hinterlegen. Damit ist es möglich sich in den eingebauten Update-Mechanismus von WordPress einzuhängen und Updates an eigene Plugins zu verteilen.
<?php
/*
* @wordpress-plugin
* Plugin Name: Jobin-Hood Arbeitgeberprofile
* Requires at least: 5.8
* Version: 1.0.1
* Update URI: https://update.webfoersterei.de/wp */
Das Hinterlegen der URL ist jedoch nur der erste Schritt. Es gilt sich nun per
Action-Hook in die Erfassung von Plugin-Updates einzuhängen. Die neuen Hooks
ermöglichen es - domainbezogen - die Updates selbst in die Hand zu nehmen
und somit die Update-Erkennung von WordPress zu ändern - in diesem Fall
alle Plugins mit einer Update-URI der Domain update.webfoersterei.de
:
<?php
add_filter('update_plugins_update.webfoersterei.de', 'plugin_update_handler', 10, 4);
function plugin_update_handler($updateInfo, $pluginHeaders, $pluginFile, $language)
{
$response = file_get_contents($pluginHeaders['UpdateURI']);
return json_decode($response);
}
Als Webentwickler für private WordPress-Plugins ist noch der Endpunkt zu implementieren, der die Update-Informationen zurück an WordPress gibt.
Eine beispielhafte Antwort dieses Update-Endpunktes könnte so aussehen:
{
"version":"1.0.2",
"package":"https:\/\/update.webfoersterei.de\/wp\/jobin-hood\/1.0.2.zip"
}
Ist das erledigt, erkennt WordPress die Updates selbst und bietet diese wie für normale öffentliche Plugins mit nur einem Klick zu Installation an.
Das spart im Betrieb gerade dann Zeit, wenn das Plugin auf vielen WordPress-Instanzen installiert ist, wertvolle Arbeitszeit, da ein Klick auf den Link "Jetzt aktualisieren" genügt.
Auch wir bei der webförsterei bilden regelmäßig Projekte in der Webentwicklung in Hamburg innerhalb von WordPress als updatebares, privates Plugin ab - beispielsweise die Arbeitgebersuche von Jobin-Hood oder die Jobbörse per XML-Schnittstelle.