Updates für ein privates Plugin?


117

Gibt es eine Möglichkeit, ein privates Plugin mithilfe des automatischen Update-Mechanismus von WordPress zu aktualisieren?

Ich möchte die Funktionalität zusammenfassen, aber sie ist spezifisch für meine eigenen 5 oder so Blogs, daher ist sie kein guter Kandidat für die Ressource der öffentlichen Plugins. Aber ich mag den einfach zu aktualisierenden Mechanismus.

Gibt es eine Möglichkeit, dies zu tun?


Ich glaube, dies wurde früher als filterbare Option auf der Mailingliste von wp-hackers diskutiert. Es wurde nie gelöst, IIRC. Ich denke, die relevante Diskussion war in diesem Thread: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... aber ich könnte mich irren.
ZaMoose

Wenn Sie keine eigene Lösung erstellen möchten, können Sie kernl.us für gehostete Plugin-Updates verwenden.
Jack Slingerland

Antworten:


48

Sieht aus wie der entsprechende Code in ist wp-includes/update.php, wp_update_plugins():

$to_send = (object) compact('plugins', 'active');

$options = array(
    'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3), 
    'body' => array( 'plugins' => serialize( $to_send ) ),
    'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);  

$raw_response = wp_remote_post('http://api.wordpress.org/plugins/update-check/1.0/', $options);

Es prüft speziell api.wordpress.org. Technisch gesehen wäre es möglich, einen Schlüssel $to_sendfür die Delegierung des Schecks zu übergeben, aber meines Wissens ist dies keine unterstützte Funktion.

Wenn Sie sich anschließen, können set_site_transient_update_pluginsSie dieser Variablen Ihre eigenen Paketdetails hinzufügen. Es sieht so aus, als ob diese Werte vertrauenswürdig sind, wenn Sie den Plugin-Updater ausführen. Siehe wp-admin/update.phpund wp-admin/includes/class-wp-upgrader.php. Angesichts des Codes in diesen beiden Funktionen ist es meines Erachtens möglich, einen eigenen Update-Server einzuschleusen. Sie müssen lediglich prüfen, wie die Paketdetails formatiert sind und mit diesen übereinstimmen.


42

Dieses Plugin erledigt das für Sie:

Automatische Updates für private und kommerzielle Plugins

Seit jeher unterstützen nur Plugins, die im offiziellen WordPress.org-Plugin-Verzeichnis gehostet werden, automatische Updates. Jetzt habe ich eine PHP-Bibliothek geschrieben, mit der Sie jedem Plugin automatische Update-Funktionen hinzufügen können. Öffentliche, private und kommerzielle Plug-ins - alle können jetzt die Vorteile automatischer Update-Benachrichtigungen und Upgrades mit einem Klick nutzen.

GitHub-Repository


2
Sie könnten auch daran interessiert sein, die Plugins auf Ihrer Seite zu verwalten ... möglicherweise mit dem Paket wp-update-server, das vom selben Autor geschrieben wurde;) github.com/YahnisElsts/wp-update-server Mit diesem Server können Sie Ihre Plugins sichern, wie Hier beschrieben: w-shadow.com/blog/2013/03/19/…
SimonSimCity

Wie kann ich den WordPress-Standard-Update-Checker für kostenlose Plugins deaktivieren?
csandreas1

Obwohl diese Website veraltet aussieht, wird das Projekt sehr aktiv unterstützt und funktioniert auch mit privaten Bitbucket / Github-Repos! Weitere Informationen zu den verschiedenen verfügbaren Integrationen finden Sie im Github-Repo von github.com/YahnisElsts/plugin-update-checker
Mr. Me,

10

Wenn Sie gerne kostenlos ... und etwas wie GitHub, GitLab oder BitBucket verwenden möchten, ist dies ein qualitativ gutes und unterstütztes Plugin für die Handhabung (unterstützt private und geschäftliche):

https://github.com/afragen/github-updater


1
Beeindruckend! Sieht aus wie ein gut unterstütztes und ausgereiftes Projekt!
Armstrongest

1
Sich auf ein anderes Plugin zu verlassen, scheint keine sehr saubere Lösung zu sein.
Kontur

2
@kontur ist sehr wahr, aber da dies Open Source ist und ständig aktualisiert wird, kann es als Framework oder einfach als Codebeispiel zum Erstellen eines eigenen verwendet werden.
sMyles


1

Vielleicht möchten Sie das WordPress Development Kit-Plugin ausprobieren . Ich habe kürzlich mein proprietäres Update-System auf dieses Plugin migriert. Das Plugin dient jetzt als Back-End-Prozessor für meine Premium-Plugin-Updates.

Dies ist im Aufbau ähnlich zu der Lösung, die oben von agileapricot bereitgestellt wurde. Es wird als Standard-Plugin auf einer WordPress-Site installiert. Sie hosten Ihre Premium-ZIP-Dateien und die Datei plugins.json in Produktions- oder Vorabversionsverzeichnissen auf Ihrem Server (angegeben in den Einstellungen für das Plugin).

Mit dem Plugin können Sie auch Plugin-Versionen auflisten und die Dateien sogar auf öffentlichen, kennwortgeschützten oder abonnementgeschützten Seiten herunterladen. Ein Beispiel für die Liste der On-Page-Versionen finden Sie hier .

Ich benutze das Plugin seit Monaten, um das Änderungsprotokoll für meine Premium-Add-Ons, die Liste der aktuellen Versionen und Download-Listen für meine Premier-Abonnenten zu veröffentlichen. Ab Version 0.7.01 fungiert es nun als Abfrageziel für Inline-WordPress-Updates.

Hoffe, einige von euch finden es nützlich.


1

Wenn Sie eine gehostete Lösung suchen, die Sie nicht verwalten müssen, lesen Sie Kernl ( https://kernl.us ). Es handelt sich um einen Dienst, der die Infrastruktur für die Aktualisierung von Plugins bereitstellt und die Integration in Ihre eigenen Plugins vereinfacht.


Das scheint machbar.
Kontur

-1

Sie können dieses kommerzielle Plugin verwenden: http://autohosted.com/ ohne Einschränkung und haben einige andere Funktionen, die Sie möglicherweise benötigen:

  • Keine monatliche Gebühr
  • Unbegrenzte nutzung
  • Einfache Integration in Themes und Plugins
  • Authentifizierung durch Domänen, Schlüssel und Rollen

1
Es ist für Neuanmeldungen geschlossen ...
Cliff P
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.