Aktualisierungsbenachrichtigungsfunktion für meine Designs erstellen

17

Die Frage ist einfach :) Ich erstelle ein Thema, das ich auf vielen Websites verwenden werde. Daher möchte ich nicht jedes Mal, wenn ich einen Fehler behebe oder ein Theme-Upgrade durchführe, die gesamte Site durchsuchen und die Dateien per FTP übertragen.

Gibt es eine Möglichkeit, ein Update-System wie die im WordPress-Plugin-Verzeichnis gehosteten Plugins zu erstellen?

Ich freue mich auf deine Antwort. Vielen Dank!

Gelöst:

Vielen Dank an Chip Bennett für seinen hervorragenden Link. Die Aktualisierungsbibliothek für Themen ist jetzt auf dieser Site verfügbar. Sie finden es hier: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

Denken Sie immer an eine Spende, wenn Sie hervorragende Arbeiten sehen, die kostenlos zur Verfügung gestellt werden.

Sisir
quelle
Benutze den Plugin Update Checker! Funktioniert sowohl für Plugins als auch für Themes. github.com/YahnisElsts/plugin-update-checker
Transbetacism

Antworten:

9

Sie können sich auch in die Kernaktualisierungsroutine einhängen. (Ich suche nach Tutorial-Links, aber mein Google-Fu schlägt mir heute Morgen fehl.)

BEARBEITEN:

Sehen Sie, ob dieses Tutorial hilft . Es wird erklärt, wie automatische Upgrades für private / kommerzielle (dh nicht im Repository gehostete) Plugins implementiert werden.

Chip Bennett
quelle
1
Ich denke, es istpre_set_site_transient_update_plugins
Wyck
Vielen Dank! Ich gehe durch den Link und die Plugin-Codes haben nicht funktioniert, aber ich fordere den Typen auf, die Bibliothek für Themen zu modifizieren. Einige Tage später hat er eine erstellt! Und jetzt funktioniert es großartig! Ich werde den Link in meine Frage stellen. Vielen Dank!!
Sisir
1
Hier ist ein Tutorial für die automatische Aktualisierung von Themes von derselben Site: w-shadow.com/blog/2011/06/02/…
Jaroslav Klimčík
pre_set_site_transient_update_pluginsLäuft nur das aktivierte Theme auf der Hauptseite. Alle anderen benutzerdefinierten Themenaktualisierungen werden nicht überprüft, auch wenn es sich um Multi-Sites handelt und andere benutzerdefinierte Themen auf anderen Sites aktiviert wurden.
Vee
3

Eine interessante Frage! In der Tat denke ich, Sie sollten einen Service machen, um das Update zu überprüfen! Wie zum Beispiel yourdomain.comn / api / update-check! Dann kann dies XML oder JSON oder einige nützliche Informationen im Zusammenhang mit dem Update zurückgeben, wie z. B. die Version, die URL der Update-Datei (die aktualisierte Datei sollte eine Zip-Datei sein)!

In Ihrem Thema können Sie haben:

    <?php define('OWN_THEME_VERSION', '1.1');

Wenn Sie also ein Update von der oben genannten URL gefunden haben (yourdomain.comn / api / update-check), gehen Sie davon aus, dass es die folgenden JSO-Daten zurückgibt: {"version": "1.2", "file": "theme.zip"}

Sie vergleichen die Version, um nach neuen Updates zu suchen! Wechseln Sie dann mit dieser Funktion zum Standarddesign: http://codex.wordpress.org/Function_Reference/switch_theme (damit Benutzer beim Zugriff auf die Website eine Website sehen, die sich im Aufruhr befindet). Als nächstes kann Ihr Code curl oder sogar file_get_contents verwenden, um die ZIP-Datei (in diesem Fall theme.zip) herunterzuladen! Als nächstes löschen Sie alle Dateien in Ihrem Theme-Ordner, extrahieren dann die Zip-Datei und kopieren den Inhalt in den Theme-Ordner! Ich denke so sollte es funktionieren!

Vielleicht möchten Sie einen Blick darauf werfen, was WordPress getan hat! Ich fand es in der Datei wp-admin / includes / update-core.php, Zeile 288, Funktion update_core

kureikain
quelle
3
Grundsätzlich ist dies aber anstelle von curl oder file_get die WordPress HTTP API zu verwenden, codex.wordpress.org/HTTP_API
Wyck
Cool Wyck, das wusste ich nicht;)!
kureikain
1
Endlich Zeit, um damit anzufangen! Für die aktuelle Version des Themas kann ich diese Funktion codex.wordpress.org/Function_Reference/get_theme_data verwenden . Ich werde beginnen, mit dem von Ihnen angegebenen Ansatz zu arbeiten.
Sisir