Ich entwickle gerade ein WordPress-Plugin, das ich nicht im Wordpress-Plugin-Repository haben möchte. Ich möchte jedoch weiterhin in der Lage sein, Updates aus meinem eigenen API-Repository an meine Kunden zu senden.
Ich habe ziemlich viel darüber gelesen, und eine Sache, die etwas zu sein scheint, ist der pre_set_site_transient_update_plugins
Filter, aber ich kann nicht viele Informationen darüber finden. Ich habe dieses Tutorial ( http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/ ) ausprobiert, das ich nicht zum Laufen bringen konnte. Ich kann den Kommentaren entnehmen, dass andere dies tatsächlich mit der fast aktuellen Version von WP zum Laufen bringen können (letzte Antwort 22. April).
Ich habe versucht, das Plugin von der Site zu installieren und den API-Ordner in eine zweite Domäne zu stellen, aber die Update-Benachrichtigung, die ich normalerweise erhalte, wenn ein Update verfügbar ist, wurde überhaupt nicht angezeigt.
Ich bin mir nicht sicher, ob es tatsächlich möglich ist, dass benutzerdefinierte Plugins das automatische Update von anderen Repositorys ausführen, also würde ich gerne hören, ob jemand hier überhaupt Erfahrung mit diesem Zeug hat. Die Lösung im Tutorial schien eine einfache Lösung zu sein - ich frage mich, ob es irgendwie möglich ist, dies auf fortgeschrittenere Weise zu tun.
Jede Hilfe, um dieses automatische Update aus meinem eigenen Repository zum Laufen zu bringen, wäre sehr dankbar!
(PS: Ich verwende WP Version 3.1.3)
Antworten:
Zum Nutzen anderer, die diese Seite finden, empfehle ich denjenigen, die ihre eigenen Updates außerhalb des offiziellen WP-Repositorys bereitstellen möchten, dieses Projekt auf GitHub zu besuchen, das die Funktionalität demonstriert:
https://github.com/jeremyclark13/automatic-theme-plugin-update
quelle
Ja, das ist möglich. Es gibt ein ganzes Kapitel in der professionellen WordPress-Plugin-Entwicklung , das diesem Thema gewidmet ist. Wenn Sie es noch nicht getan haben, holen Sie sich eine Kopie. Es wird definitiv helfen.
quelle
add_filter("pre_set_site_transient_update_plugins","dne_altapi_check");
Danach habe ich die Funktion dne_altapi_check, die enthältprint_r("hi");
- aber wenn ich unter Updates auf die Schaltfläche "Erneut prüfen " drücke, wird überhaupt nichts gedruckt. Bin ich etwas falsch machen, wenn Sie sich in den Update Checker einhängen?Es gibt diesen kommerziellen Plugin und Theme Update API Manager für WooCommerce, der speziell funktioniert, wenn das Plugin oder Theme nicht auf wordpress.org gehostet wird. Es wurde entwickelt, um Updates für selbst gehostete Plugins und Themes bereitzustellen. Das Plugin ist für diejenigen gedacht, die es nicht selbst schreiben möchten und viele Funktionen sowie Arbeitsbeispiele für Plugins und Themen benötigen, die verkauft werden.
http://www.toddlahman.com/shop/wordpress-automatic-update-api-manager/
quelle
Es gibt auch einen netten Service unter http://wp-updates.com/ - Sie erhalten ein Thema oder Plugin kostenlos. Zu Ihrer Information - dies ist nicht meine Seite, aber ich habe es vor einiger Zeit versucht und es schien ziemlich gut zu sein.
quelle
Für eine Single-Site-Installation (ich habe sie nicht auf einer Multi-Site-Installation getestet) müssen nur zwei Hooks von einem externen Dienst wie Github oder Gitlab aktualisiert werden. Im folgenden Code verwende ich gitlab, da ich damit meinen Code gerade hoste. Ich sollte wahrscheinlich die Gitlab-Teile abstrahieren ...
Der erste Haken, den Sie verwenden müssen, ist
pre_set_site_transient_update_themes
. Dies ist der Filter, mit dem WordPress den site_transient so einstellt, dass angezeigt wird, ob Updates verfügbar sind. Verwenden Sie diesen Hook, um eine Verbindung zu Ihrer Remote-Version herzustellen und festzustellen, ob Updates verfügbar sind. Wenn dies der Fall ist, ändern Sie den Übergang so, dass WordPress weiß, dass Aktualisierungen vorhanden sind, und dem Benutzer den Hinweis anzeigen kann.Der andere Haken, den Sie verwenden müssen, ist
upgrader_source_selection
. Dieser Filter wird für gitlab ohnehin benötigt, da der Name des heruntergeladenen Ordners nicht mit dem Thema übereinstimmt. Daher verwenden wir diesen Hook, um ihn in den richtigen Namen umzubenennen. Wenn Ihr Remote-Repository eine Zip-Datei mit dem richtigen Namen bereitstellt, benötigen Sie diesen Hook nicht einmal.Der dritte optionale Hook, den Sie verwenden können, ist,
auto_update_theme
wenn Sie Ihr Thema automatisch aktualisieren möchten. Im folgenden Beispiel verwende ich diesen Hook, um nur dieses spezielle Thema automatisch zu aktualisieren.Dieser Code wurde nur mit WordPress 4.9.x getestet. Es erfordert PHP> 7.0.
functions.php
updater.php
quelle