Skip to content

Alles für WordPress, Webentwicklung — und mehr

🚀 Automatische Aktualisierung von WordPress-Plugins von GitHub: schrittweise Einrichtung

🚀 Automatische Aktualisierung von WordPress-Plugins von GitHub: schrittweise Einrichtung

Sie haben eine neue Plugin-Version auf GitHub veröffentlicht, aber die Nutzer arbeiten noch mit der alten. ZIPs manuell herunterladen, über das Admin-Panel hochladen, Kompatibilität prüfen: Routineaufgaben, die Zeit fressen und Fehler produzieren.

Der Standard-Update-Mechanismus von WordPress ist an das offizielle Verzeichnis von WordPress.org gebunden. Aber nicht jedes Plugin landet dort: kundenspezifische Lösungen, interne Team-Tools, Forks beliebter Plugins mit Anpassungen. Diese brauchen einen anderen Weg.

Updates direkt von GitHub auszuliefern, ist glücklicherweise seit Langem gelöst. Nachfolgend zwei funktionierende Methoden: einfach (das Git Updater-Plugin, wenige Klicks) und fortgeschritten (eine eingebaute PHP-Klasse für volle Kontrolle).

💡 Kurzer Überblick:

  • Installieren Sie Git Updater: Es erkennt GitHub-Releases als reguläre WordPress-Updates
  • Für private Repositories konfigurieren Sie einen Zugriffstoken in den Plugin-Einstellungen
  • Wenn Sie Ihr eigenes Plugin schreiben und Auto-Updates im Code verankern möchten: Nutzen Sie die eingebaute PHP-Klasse
  • Das Repository muss einen gültigen Plugin-Header und einen Versions-Tag enthalten

Methode 1: Git Updater, Updates mit zwei Klicks

Git Updater Plugin-Oberfläche für WordPress

Git Updater ist ein kostenloses Plugin, das die Unterstützung für GitHub, Bitbucket, GitLab und Gitea in die Standard-Update-Oberfläche von WordPress integriert. Nach der Installation aktualisieren sich Plugins und Themes von GitHub an derselben Stelle wie reguläre: Dashboard → Updates.

Entwickler Andy Fragen pflegt das Projekt seit 2015. Die Git Updater GitHub-Seite hat über 400 Sterne und ein aktives Repository mit regelmäßigen Commits. Die Wissensdatenbank auf git-updater.com behandelt Installation, Token-Konfiguration und API-Nutzung.

Die Installation ist einfach: Laden Sie das ZIP vom GitHub-Release herunter, laden Sie es über Plugins → Installieren → Plugin hochladen hoch und aktivieren Sie es. Das Plugin beginnt sofort, die in den Headern der installierten Plugins und Themes angegebenen Repositories zu verfolgen.

Für private Repositories benötigen Sie einen Token. Erstellen Sie einen Personal Access Token in GitHub Settings → Developer settings → Tokens (Berechtigungen: repo für privat; für öffentliche kein Token nötig), fügen Sie ihn unter Einstellungen → Git Updater ein. Danach sieht das Plugin auch geschlossene Repositories.

Ein wichtiges Detail: Git Updater prüft im Repository auf Tags im Format X.Y.Z (semantische Versionierung). Gibt es keine Tags, funktioniert das Update nicht. Setzen Sie vor einem Release immer einen Tag: git tag 1.2.0 && git push --tags.

Methode 2: Eingebaute PHP-Klasse für Entwickler

Wenn Sie Plugin-Autor sind und den Auto-Update-Mechanismus direkt in Ihrem Code verankern möchten (ohne ein separates Vermittler-Plugin), funktioniert der klassische PHP-Klassen-Ansatz nach wie vor. Er ist schlanker als die ursprüngliche Klasse von Joachim Kudish und radishconcepts und nutzt native WordPress-Hooks.

Fügen Sie den folgenden Code in die Hauptdatei Ihres Plugins oder in eine separate Datei updater.php ein, die Sie via require_once einbinden:

1/**
2 * Auto-update from GitHub releases.
3 * Place in main plugin file or include via require_once.
4 */
5function myplugin_check_github_update($transient) {
6 if (empty($transient->checked)) {
7 return $transient;
8 }
9
10 $plugin_slug = 'my-plugin/my-plugin.php';
11 $github_repo = 'username/my-plugin';
12
13 $response = wp_remote_get(
14 'https://api.github.com/repos/' . $github_repo . '/releases/latest',
15 array(
16 'headers' => array(
17 'Accept' => 'application/vnd.github.v3+json',
18 'User-Agent' => 'WordPress/' . get_bloginfo('version'),
19 ),
20 )
21 );
22
23 if (is_wp_error($response) || wp_remote_retrieve_response_code($response) !== 200) {
24 return $transient;
25 }
26
27 $release = json_decode(wp_remote_retrieve_body($response));
28
29 if (!isset($release->tag_name)) {
30 return $transient;
31 }
32
33 $latest_version = ltrim($release->tag_name, 'v');
34 $current_version = $transient->checked[$plugin_slug] ?? '0';
35
36 if (version_compare($latest_version, $current_version, '>')) {
37 $transient->response[$plugin_slug] = (object) array(
38 'slug' => dirname($plugin_slug),
39 'new_version' => $latest_version,
40 'url' => 'https://github.com/' . $github_repo,
41 'package' => $release->zipball_url,
42 );
43 }
44
45 return $transient;
46}
47add_filter('pre_set_site_transient_update_plugins', 'myplugin_check_github_update');

Der Code erledigt genau drei Dinge: Er fragt die GitHub-API nach dem neuesten Release ab, vergleicht die Version aus tag_name mit der aktuellen Plugin-Version und registriert das Update im Standard-Mechanismus von WordPress, falls GitHub eine neuere hat. Die Plugin-Version wird dem Standard-Header Version: X.Y.Z in der Hauptdatei entnommen.

Hinweis: Für öffentliche Repositories ist kein Token erforderlich, aber die GitHub-API begrenzt ohne Token die Anfragefrequenz auf 60 pro Stunde und IP. Für ein Produktiv-Plugin mit vielen Nutzern implementieren Sie ein Ergebnis-Caching via set_transient() für 6-12 Stunden. So vermeiden Sie, dass das Limit bei jedem Aufruf der Plugins-Seite ausgeschöpft wird.

Vergleich der Ansätze

Kriterium

Git Updater

Eingebaute PHP-Klasse

Einrichtungsaufwand

Minimal (installieren, und es läuft)

Mittel (Code schreiben und testen)

GitLab/Bitbucket-Unterstützung

Ja (über API-Add-ons)

Nein (nur GitHub, erfordert separaten Code)

Private Repositories

Ja (integrierte Token-Unterstützung)

Ja (Authorization-Header ergänzen)

Abhängigkeit von Drittanbieter-Code

Ja (Plugin muss aktualisiert werden)

Nein (Code im eigenen Plugin)

API-Anfrage-Caching

Integriert

Muss selbst implementiert werden

Geeignet für

Seitenbetreiber, Freelancer

Plugin-Entwickler, Agenturen

Fazit: Wenn Sie ein fremdes GitHub-Plugin auf einer Seite installieren, nutzen Sie Git Updater. Wenn Sie Plugin-Autor sind und es über GitHub vertreiben, verankern Sie Auto-Updates im Code, damit Nutzer kein zusätzliches Plugin installieren müssen.

Repository für Auto-Updates vorbereiten

Unabhängig von der gewählten Methode muss das GitHub-Repository ordentlich vorbereitet sein. Drei zwingende Punkte:

  • Plugin-Header. In der PHP-Hauptdatei gehört der standardmäßige WordPress-Header: Plugin Name, Version, Author und Plugin URI mit einem Link zum Repository. Git Updater liest Plugin URI und GitHub Plugin URI; geben Sie mindestens einen an.

  • Versions-Tags. Versehen Sie jedes Release mit einem Tag: git tag 1.3.0 && git push origin 1.3.0. Ohne Tags sehen weder Git Updater noch die API-Abfrage die neue Version.

  • Readme-Datei. Fügen Sie eine README.md mit Beschreibung, Changelog und Installationslink hinzu. Git Updater zeigt den Readme-Inhalt auf dem Plugin-Informationsbildschirm an, was Nutzern Zeit spart, die nicht für Anleitungen auf GitHub vorbeischauen müssen.

Mit GitHub Actions können Sie weiter gehen: Bei einem Tag-Push automatisch das ZIP bauen, einen Changelog aus Commits generieren und ein GitHub-Release mit angehängtem Archiv erstellen. Ein fertiger Workflow findet sich in der offiziellen GitHub-Dokumentation; passen Sie ihn für WordPress an, indem Sie den Build-Schritt durch Plugin-Paketierung ersetzen.

Das Video zeigt den vollständigen Ablauf von der Installation des Git Updater bis zum ersten automatischen Plugin-Update. Wir empfehlen, es vor der Einrichtung anzusehen: 12 Minuten Bildschirmaufzeichnung sparen eine Stunde Ausprobieren.

⁉️🤔 Häufig gestellte Fragen

Funktioniert Git Updater mit Plugins aus dem offiziellen WordPress.org-Verzeichnis?

Ja, aber es ergibt keinen Sinn. Plugins von WordPress.org erhalten Updates bereits über den Standard-Mechanismus. Git Updater ist speziell für Plugins und Themes gedacht, die nicht im Verzeichnis sind: Eigenentwicklungen, Forks, Plugins in der Prüfungsphase.

Kann Git Updater auf einer Produktivseite eingesetzt werden?

Ja, das Projekt ist stabil und wird seit 2015 gepflegt. Erstellen Sie vor der Installation ein vollständiges Backup (wie bei jedem neuen Plugin). Testen Sie auf einer Testseite das Update mindestens eines Plugins, stellen Sie sicher, dass die Tags im Repository korrekt gesetzt sind und das Update fehlerfrei durchläuft.

Was tun, wenn die GitHub-API das Anfragelimit erreicht?

Für öffentliche Repositories liegt das Limit bei 60 Anfragen pro Stunde von einer IP. Git Updater cached Antworten für 12 Stunden, daher tritt das Problem selten auf. Falls doch: Erstellen Sie einen kostenlosen Personal Access Token (ohne zusätzliche Berechtigungen) und hinterlegen Sie ihn unter Einstellungen → Git Updater: Das Limit steigt sofort auf 5000 Anfragen pro Stunde.

Was tun, wenn das Plugin auf GitHub Composer-Abhängigkeiten nutzt?

Git Updater führt während Updates kein composer install aus. Wenn Ihr Plugin von Composer-Paketen abhängt, verankern Sie das Autoloading über ein Bundle (packen Sie vendor/ ins Release-ZIP) oder fügen Sie ein Post-Update-Skript hinzu, das Abhängigkeiten prüft und den Administrator warnt, falls sie fehlen.

Können Plugins aus einem privaten Repository auf dem kostenlosen GitHub aktualisiert werden?

Ja. Kostenlose GitHub-Konten enthalten unbegrenzt private Repositories. Erstellen Sie einen Personal Access Token mit repo-Berechtigung, fügen Sie ihn in Git Updater ein, und das Plugin erhält Zugriff auf Ihre privaten Repositories.

Auto-Updates von GitHub: Was 2026 zu verwenden ist

Für einen Seitenbetreiber ist die Antwort klar: Git Updater. Kostenlos, stabil, erfordert keinen Code.

Für einen Plugin-Entwickler hängt die Wahl von der Zielgruppe ab. Wird Ihr Produkt von regulären Nutzern installiert, verankern Sie die PHP-Klasse für Auto-Updates direkt im Plugin-Code. Ein zusätzliches Vermittler-Plugin in der Kette senkt die Installations-Conversion. Ist das Produkt für ein technisches Publikum, ist Git Updater als Abhängigkeit akzeptabel; erwähnen Sie es einfach in der Anleitung.

Prüfen Sie Ihre GitHub-Plugins jetzt sofort: Sind Tags auf den neuesten Releases gesetzt, ist Plugin URI im Header ausgefüllt, hat der Nutzer einen klaren Update-Pfad? Fünfzehn Minuten Einrichtung ersparen Ihnen und Ihren Nutzern jahrelange manuelle Frickelei mit ZIP-Archiven.