Heim > CMS-Tutorial > WordDrücken Sie > WordPress -Plugin aktualisiert den richtigen Weg

WordPress -Plugin aktualisiert den richtigen Weg

Jennifer Aniston
Freigeben: 2025-02-15 12:56:11
Original
925 Leute haben es durchsucht

Detaillierte Erklärung und Best Practices des WordPress-Plug-in-Update-Mechanismus

WordPress selbst liefert keinen nativen Plug-in-Update-Prozess, und Entwickler müssen ihn selbst implementieren. Dies beinhaltet die Aktualisierung der Versionsnummer in der Datenbank und das Erstellen neuer Optionen gegebenenfalls.

Die Versionsnummer des WordPress -Plugins sollte an zwei Stellen gespeichert werden: Konstanten in der Hauptdatei und Optionen in der Datenbank. Dies ermöglicht die Erkennung, ob die Datenbankoptionen seit dem letzten Plugin -Update aktualisiert wurden.

Bei der Aktualisierung der Optionen sollten Entwickler darauf achten, die Auswahl des Benutzers nicht zu überschreiben. Wenn in der Datenbank keine Option vorliegt, sollte sie erstellt werden.

array_merge() Für Optionen, die als Arrays gespeichert sind, können Entwickler die PHP-Funktion

verwenden, um sicherzustellen, dass alle Schlüssel definiert sind und keine nicht existierenden Optionen eingeführt werden. Dies stellt auch sicher, dass der Wert beibehalten wird, wenn der Benutzer die alte Option ändert.

Vor ein paar Wochen habe ich eine E -Mail über die WP -Fotokugel (ein WordPress -Plugin, das ich entwickelt hat) erhalten. Das Problem ist groß: Das Aktualisieren des Plugins lässt einige Installateure zum Absturz bringen. Nach einigen Untersuchungen stellte ich fest, dass das Problem aus den vom Plugin verwendeten Optionen zurückzuführen ist: Diese Installateure liefern keine Standardwerte für die neuen Optionen, die ich hinzugefügt habe.

WordPress Plugin Updates the Right Way

Diese Werte sind sehr wichtig, daher brauche ich eine Möglichkeit, die Standardwerte zu erstellen. Im Gegensatz zu dem, was ich denke, bietet WordPress jedoch keine nativen Methoden zur Behandlung des Aktualisierungsprozesses.

Deshalb möchte ich dieses Tutorial schreiben. Erstens werden wir genau verstehen, warum wir den Aktualisierungsprozess benötigen und warum WordPress keinen solchen Prozess liefert. Ich werde Ihnen dann zeigen, wie Sie Ihren eigenen Prozess ordnungsgemäß erstellen, um Ihre Optionen zu aktualisieren.

Die Bedeutung des Plug-in-Update-Prozesses

Normalerweise reicht das Ändern der Datei nicht aus, um etwas korrekt zu aktualisieren. Wenn Sie beispielsweise Ihre WordPress -Datei manuell auf eine neue Version aktualisieren, werden Sie von der Plattform aufgefordert, auf eine Schaltfläche zu klicken, um die Datenbank zu aktualisieren.

Angenommen, Sie verwenden Optionen im Plugin. Wenn sich das Plugin entwickelt, benötigen Sie in der neuen Version weitere Optionen. Es ist einfach, neue Optionen zu erstellen, wenn der Benutzer zum ersten Mal das Plugin aktiviert. Sie müssen nur den Aktivierungshaken verwenden.

Schauen wir uns zum Beispiel den folgenden Code an:
function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

update_option() Wenn Sie nicht mit add_option() statt

vertraut sind, machen wir uns bitte keine Sorgen, wir werden es später erklären, wenn wir besprechen, wie man mit dem Update -Prozess umgeht.

Wenn Sie eine neue Option wünschen oder den Wert einer vorhandenen Option in einer neuen Version aktualisieren, müssen Sie die Benutzerdatenbank aktualisieren, die bereits Ihr Plugin verwendet. Daher benötigen wir eine Funktion, die sofort nach dem Update aufgerufen wird .

Die Aktivierung des Hakens kann etwas verwirrend sein. Wenn Sie das Plugin automatisch aktualisieren, wird es schließlich deaktiviert und reaktiviert, sodass wir erwarten können, dass dieser Haken aufgerufen wird. Aber das ist nicht der Fall. <🎜>

genauer gesagt, es war früher, aber WordPress hat dieses Verhalten in Version 3.1 gestoppt. Das Entwicklungsteam hat diese Option erläutert und Sie können die vollständige Erklärung im Make WordPress Core -Blog lesen. Der Hauptgrund ist, dass es nicht jedes Mal aufgerufen wird, denn wenn der Benutzer das Plugin manuell aktualisiert, kann der Aktivierungshaken übersprungen werden.

WordPress bietet daher keine Standardmethode zur automatischen Aufruf von Funktionen nach Plug-in-Updates. Deshalb müssen Sie Ihren eigenen Prozess erstellen.

wie man mit dem Aktualisierungsprozess umgeht

In diesem Teil dieses Tutorials werde ich Ihnen zeigen, wie Sie eine bestimmte Funktion automatisch aufrufen, nachdem das Plugin aktualisiert wurde. Wir werden im nächsten Abschnitt sehen, wie die Aktualisierung vorhandener Optionen und die Erstellung neuer Optionen (in derselben Funktion) ordnungsgemäß behandelt werden.

Prinzip dieser Methode

Das globale Prinzip unserer Methode ist, dass wir die Versionsnummer des Plugins an zwei Stellen speichern: Konstanten in der Plugin -Hauptdatei und Optionen in der Datenbank.

Die Zahlen in der Datenbank speichern die derzeit installierte Version des Benutzers, während die Zahlen in der Konstante die aktuelle Version sind. Wenn diese beiden Zahlen unterschiedlich sind, wurden die Datenbankoptionen seit dem letzten Plugin -Update nicht aktualisiert, sodass wir dies tun müssen.

In diesem Fall werden wir eine Funktion aufrufen, die alle erforderlichen Optionen aktualisiert. Diese Funktion aktualisiert auch die in der Datenbank gespeicherte Versionsnummer: damit wir diese Funktion nicht übertreffen.

konstant

Jetzt, wo wir das, was wir tun werden, abgedeckt haben, ist es Zeit, Code zu schreiben! Fügen Sie zunächst eine konstante Definition in die Plugin -Hauptdatei hinzu und nehmen Sie Ihre aktuelle Versionsnummer als Wert. Um Probleme zu vermeiden, testen wir, ob es noch nicht existiert hat.

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Normalerweise verwendet die Plugin -Version eine digitale Identität. Sie können sie jedoch gerne verwenden, wenn Sie ein anderes System verwenden. Die einzige Einschränkung hier ist, eine eindeutige Kennung für jede Version oder zumindest für jede Version bereitzustellen, die die Datenbank ändern muss (neue Optionen, neue Standardeinstellungen usw.).

Überprüfen Sie die Funktion

Wir müssen jetzt eine Funktion schreiben, um zu überprüfen, ob die Datenbank aktualisiert werden muss. Diese Funktion vergleicht die zuvor definierten Konstanten mit den derzeit in der Datenbank gespeicherten Werten. Dazu werden wir sicherstellen, dass unsere Funktion überall mit der plugins_loaded -Kaktion aufgerufen wird, die ausgelöst wird, sobald alle Plugins geladen sind.

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Diese Funktion ist einfach. Wir rufen die in der Datenbank gespeicherte Versionsnummer genau wie jede andere Option ab und vergleichen sie mit der Konstante. Wenn diese Werte unterschiedlich sind, werden wir die Funktion my_awesome_plugin_activation() aufrufen.

function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt müssen wir einige Probleme klären. Was ist dann, wenn die Option in der Datenbank noch nicht vorhanden ist? Wenn die Option nicht vorhanden ist, gibt get_option() false zurück, was sich von Ihrer Versionsnummer unterscheidet, sodass die Funktion aufgerufen wird.

Warum nennen wir die Aktivierungsfunktion? Um klar zu sein, können wir eine neue Funktion erstellen, die speziell für den Aktualisierungsprozess verwendet wird. Wenn Sie dies tun, werden Sie jedoch feststellen, dass diese neue Funktion der Aktivierung sehr ähnlich sein wird, da Aktualisierungsoptionen mit den Optionen übereinstimmen können.

Aktualisieren Sie die Versionsnummer in der Datenbank

Sie können in der oben genannten Aktivierungsfunktion alles tun, was Sie wollen. Eine Sache ist jedoch erforderlich, und das heißt, die in der Datenbank gespeicherte Versionsnummer zu aktualisieren. Auf diese Weise nennen wir unsere Funktionen nicht jedes Mal, wenn die Seite geladen wird.

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Bitte beachten Sie den Trick: Wir verwenden nicht add_option(), verwenden Sie nur update_option(). Wenn die Option noch nicht vorhanden ist, erstellt dies update_option(). Wenn es existiert, aktualisiert es seinen Wert auf den angegebenen Wert. Aus diesem Grund können wir unsere Aktivierungsfunktion als Aktualisierungsfunktion ohne Probleme verwenden.

Aktualisieren Sie Optionen

Überschreiben Sie die Auswahl des Benutzers nicht!

Die Aktualisierung einer Option ist genauso wie aktualisiert die Versionsnummer: Sie können update_option() aufrufen, und sie ist erledigt, auch wenn dies das erste Mal ist, dass WordPress die Option gesehen hat.

Wir möchten jedoch nicht immer die Optionwerte aktualisieren. Wenn Sie Optionen verwenden, müssen Ihre Benutzer in der Regel die Einstellungen personalisieren. Durch die Verwendung von update_option() überschreiben Sie jedes Mal, wenn Sie das Plugin aktualisieren, die Auswahl des Benutzers, was wir nicht tun möchten.

oben sehen wir, dass get_option(), wenn die Option nicht vorhanden ist, falsch zurückgibt. Wir werden dieses Verhalten testen, wenn die Option, die wir aktualisieren möchten, in der Datenbank vorhanden sind. Wenn dies der Fall ist, tun wir nichts. Andernfalls erstellen wir diese Option.

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Bitte beachten Sie, dass dieser Test für Optionen erforderlich ist, die wir nicht außer Kraft setzen möchten. In einigen Fällen möchten wir dies vielleicht tun, wenn man die Versionsnummer berücksichtigt, möchten wir den alten Wert auf jeden Fall nicht behalten!

Spezialfall - Array

Sie sollten wissen, dass WordPress Arrays ermöglicht, die Werte unserer Optionen zu speichern, und das Erstellen ist nicht schwieriger als das Erstellen anderer Optionen. Zum Beispiel:

function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie mehrere Einstellungen benötigen, ist die Verwendung von Arrays eine gute Idee. Auf diese Weise verwenden Sie nicht viele Einträge in der Datenbank und beschränken die Chancen eines anderen Plugins mithilfe von Optionen mit demselben Namen. Dies kann jedoch zu Problemen führen, wenn wir den Aktualisierungsprozess berücksichtigen.

Um die Gründe zu verstehen, nehmen wir an, Sie haben ein Array als Option mit einigen Schlüssel. Ihre Benutzer werden diese Werte sicherlich personalisieren. Mit den oben durchgeführten Tests können wir nur dann die Option erstellen, wenn sie nicht vorhanden ist und diese Entscheidungen nicht überschrieben werden. Das sieht einfach aus, aber was ist, wenn Sie in einem Array einen neuen Schlüssel erstellen möchten?

Wenn die Option in der Datenbank vorhanden ist, wird der vorherige Code nicht erstellt, sodass Ihr neuer Schlüssel nicht vorhanden ist. Wenn wir die Bedingung jedoch löschen, wird das Array bei jedem neuen Update seinen Standardwert abrufen. Nicht ideal. Glücklicherweise gibt es eine Lösung!

Erstens definieren wir ein Array, das die Standardwerte der Optionen enthält (falls ein neuer Schlüssel existiert).

if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version'))
    my_awesome_plugin_activation();
Nach dem Login kopieren
Nach dem Login kopieren

Dann holen wir das derzeit in der Datenbank gespeicherte Array ab.

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt können wir die PHP -Funktion array_merge() verwenden, um unser Standardarray als erster Parameter und das Array des Benutzers als zweiten Parameter zu nutzen. Auf diese Weise erhalten wir ein Array, das alle im $default -Array definierten Schlüssel enthält, und wir werden keine Optionen haben, die nicht existieren. Wenn der Benutzer eine der alten Optionen ändert, wird sein Wert beibehalten. Mit array_merge() führen wir immer die neuesten Definitionen.

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Schließlich verwenden wir update_option(), um die Ergebnisse in der Datenbank zu speichern.

function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir sind fast vorbei, aber wenn die Funktion zum ersten Mal ausgeführt wird, müssen wir jetzt einen Fehler beheben, auf den Sie möglicherweise begegnen.

Diese Funktion wird aufgerufen, wenn das Plugin aktiviert ist, was wir wollen. In diesem Fall existiert jedoch noch nicht die Option, so dass get_option() false zurückgibt. Das Problem ist, dass die Verwendung von False als Parameter von array_merge() einen Fehler verursacht.

Was wir wollen, ist einfach, wenn die Option nicht vorhanden ist, möchten wir, dass $option ein leeres Array sein. Dazu können wir den zweiten Parameter von get_option() verwenden, der den zu erhaltenen Standardwert anzeigt (um nicht false zurückzugeben).

if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version'))
    my_awesome_plugin_activation();
Nach dem Login kopieren
Nach dem Login kopieren

Schlussfolgerung

Sobald Sie es sorgfältig gelesen haben, ist der Prozess der Behandlung der Aktualisierung von WordPress -Plugins nicht kompliziert. Dies ist jedoch wichtig, wenn Sie Optionen verwenden, da es möglicherweise einige Probleme ohne Initialisierungsoptionen gibt.

Derzeit bietet WordPress keine native Möglichkeit, Plug-in-Updates zu verarbeiten. In der Tat sollten wir angesichts der oben aufgeführten Probleme, die wir an einem Tag feststellen, dass diese Art von Funktionalität eingeführt wird, auf ähnliche Weise wie dieses Tutorial implementieren.

Sie können den Code für mein Beispiel -Plugin hier erhalten. Stellen Sie sich diesen Code als Framework zur Implementierung Ihres eigenen WordPress -Plugin -Update -Prozesses vor. Wenn Sie Feedback haben, teilen Sie mir bitte in den Kommentaren unten mit.

WordPress Plugin Update FAQ (FAQ)

Welche Bedeutung hat die regelmäßige Aktualisierung von WordPress -Plugins?

reguläre Aktualisierungen von WordPress -Plugins sind aus folgenden Gründen von entscheidender Bedeutung: Erstens enthalten Updates häufig neue Funktionen und Funktionen, die die Leistung der Website verbessern können. Zweitens beheben Updates in der Regel Fehler und Schwachstellen, die die Sicherheit der Website gefährden können. Schließlich gewährleisten Updates die Kompatibilität mit der neuesten Version von WordPress, sodass Ihre Website reibungslos und effizient ausgeführt wird.

Wie können Sie sichere Aktualisierungen meines WordPress -Plugins sicherstellen?

Um Sicherheitsaktualisierungen sicherzustellen, stellen Sie Ihre Website sicher, bevor Sie den Aktualisierungsprozess starten. Auf diese Weise können Sie bei Problemen während des Update -Prozesses Ihre Website problemlos in ihren vorherigen Status wiederherstellen. Darüber hinaus wird empfohlen, Updates auf der Staging -Site zu testen, bevor sie auf Ihre Live -Website angewendet werden.

Was soll ich tun, wenn das Plugin -Update fehlschlägt?

Wenn das Plugin -Update fehlschlägt, besteht der erste Schritt darin, Ihre Website aus der Sicherung wiederherzustellen. Versuchen Sie dann, die Ursache des Versagens zu bestimmen. Dies kann auf einen Konflikt mit einem anderen Plugin oder Thema oder einem Kompatibilitätsproblem mit Ihrer Version von WordPress zurückzuführen sein. Sobald Sie das Problem identifiziert haben, können Sie es selbst beheben oder den Plugin -Entwickler für Hilfe kontaktieren.

Wie kann ich automatisch den Prozess der Aktualisierung von WordPress -Plugins durchführen?

WordPress verfügt über integrierte Funktionen, mit denen Sie Plugins automatisch aktualisieren können. Sie können diese Funktion aktivieren, indem Sie den Abschnitt "Plug-in" im WordPress-Dashboard erhalten, das Plug-In auswählen, das Sie automatisch aktualisieren möchten, und auf automatische Aktualisierungen aktivieren.

Wenn das Plugin -Update Probleme mit meiner Website verursacht, kann ich das Plugin -Update zurückrollen?

Ja, wenn das Plugin -Update Probleme mit Ihrer Website verursacht, können Sie das Plugin -Update zurückrollen. Es gibt mehrere verfügbare Plugins, z. B. WP Rollback, mit denen Sie die vorherigen Versionen des Plugins problemlos wiederherstellen können.

Wie aktualisiere ich erweiterte WordPress-Plug-Ins?

Das erweiterte WordPress-Plug-In wird ähnlich wie das kostenlose Plug-In aktualisiert. Sie benötigen jedoch einen gültigen Lizenzschlüssel, um auf das Update zuzugreifen. Nach der Eingabe der Lizenzschlüssel können Sie das Plug-In aus dem WordPress-Dashboard aktualisieren.

Was ist der beste Weg, um Updates auf mehreren WordPress -Websites zu verwalten?

Wenn Sie mehrere WordPress -Sites verwalten, müssen Sie möglicherweise viel Zeit damit verbringen, Plugins für jede Website einzeln zu aktualisieren. Ein effizienterer Weg ist die Verwendung von WordPress -Management -Tools wie ManagingWP oder MainWP, mit der Sie Updates für alle Ihre Websites aus einem einzigen Dashboard verwalten können.

Wie deaktivieren Sie automatische Updates für bestimmte WordPress -Plugins?

Wenn Sie automatische Updates für bestimmte Plugins deaktivieren möchten, können Sie Plugins wie Easy Updates Manager verwenden. Mit diesem Plugin können Sie die automatischen Updates jedes Plugins auf Ihrer Website steuern.

Wie überprüfen Sie die Kompatibilität von Plugin -Updates mit meiner Version von WordPress?

Bevor Sie das Plugin aktualisieren, können Sie die Kompatibilität mit Ihrer WordPress -Version überprüfen, indem Sie die Plugin -Seite im WordPress -Plugin -Verzeichnis besuchen. Hier finden Sie Informationen über die Kompatibilität des Plug-Ins mit verschiedenen Versionen von WordPress.

Was soll ich tun, wenn das Plugin -Update meine Website bricht?

Wenn das Plugin -Update Ihre Website durchbricht, besteht der erste Schritt darin, Ihre Website aus dem Sicherungsbackern wiederherzustellen. Deaktivieren Sie dann das Plugin, das das Problem verursacht hat. Wenn Sie nicht auf Ihr WordPress-Dashboard zugreifen können, können Sie das Plug-In über FTP deaktivieren, indem Sie den Plug-In-Ordner im Verzeichnis WP-Content/Plugins umbenennen. Nachdem Sie das Plugin deaktiviert haben, können Sie den Plugin -Entwickler beheben oder kontaktieren, um Hilfe zu erhalten.

Das obige ist der detaillierte Inhalt vonWordPress -Plugin aktualisiert den richtigen Weg. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage