Le plugin WordPress met à jour dans le bon sens
Explication détaillée et meilleures pratiques du mécanisme de mise à jour du plug-in wordpress
WordPress lui-même ne fournit pas de processus de mise à jour du plug-in natif, et les développeurs doivent l'implémenter eux-mêmes. Cela inclut la mise à jour du numéro de version dans la base de données et la création de nouvelles options si nécessaire.
Le numéro de version du plugin WordPress doit être stocké à deux endroits: Constantes dans le fichier principal du plugin et les options de la base de données. Cela permet de détecter si les options de base de données ont été mises à jour depuis la dernière mise à jour du plugin.
Lors de la mise à jour des options, les développeurs doivent faire attention de ne pas écraser les choix de l'utilisateur. Si une option n'existe pas dans la base de données, elle doit être créée;
Pour les options stockées sous forme de tableaux, les développeurs peuvent utiliser la fonction PHP array_merge()
pour s'assurer que toutes les clés sont définies et qu'aucune option inexistante n'est introduite. Cela garantit également que si l'utilisateur modifie l'ancienne option, sa valeur sera conservée.
Il y a quelques semaines, j'ai reçu un e-mail sur WP Photo Sphere (un plugin WordPress que j'ai développé). Le problème est important: la mise à jour du plugin provoque un plan des installateurs. Après une enquête, j'ai constaté que le problème découle des options utilisées par le plugin: ces installateurs ne fournissent aucune valeur par défaut pour les nouvelles options que j'ai ajoutées.
Ces valeurs sont très importantes, j'ai donc besoin d'un moyen de créer les valeurs par défaut. Cependant, contrairement à ce que je pense, WordPress ne fournit aucune méthode native pour gérer le processus de mise à jour.
C'est pourquoi je veux écrire ce tutoriel. Premièrement, nous comprendrons exactement pourquoi nous avons besoin du processus de mise à jour et pourquoi WordPress ne fournit pas un tel processus. Je vais ensuite vous montrer comment créer correctement votre propre processus pour mettre à jour vos options.
L'importance du processus de mise à jour du plug-in
Habituellement, la modification du fichier ne suffit pas pour mettre à jour correctement quelque chose. Par exemple, lorsque vous mettez à jour manuellement votre fichier WordPress vers une nouvelle version, la plate-forme vous demandera de cliquer sur un bouton pour mettre à jour la base de données.
Supposons que vous utilisiez des options dans le plugin. Au fur et à mesure que le plugin évolue, vous aurez besoin de plus d'options dans la nouvelle version. Il est facile de créer de nouvelles options lorsque l'utilisateur active d'abord le plugin, il vous suffit d'utiliser le crochet d'activation.
Par exemple, regardons le code suivant:
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Si vous n'êtes pas familier avec l'utilisation update_option()
au lieu de add_option()
, ne vous inquiétez pas, nous l'expliquerons plus tard lorsque vous discutez de la façon de gérer le processus de mise à jour.
Si vous souhaitez une nouvelle option, ou si vous mettez à jour la valeur d'une option existante dans une nouvelle version, vous devez mettre à jour la base de données utilisateur qui utilise déjà votre plugin, nous avons donc besoin d'une fonction qui est appelée immédiatement après la mise à jour .
L'activation du crochet peut être un peu déroutant. Après tout, lorsque vous mettez automatiquement à jour le plugin, il est désactivé et réactivé, nous pouvons donc nous attendre à ce que ce crochet soit appelé. Mais ce n'est pas le cas.
Plus précisément, c'était le cas, mais WordPress a arrêté ce comportement dans la version 3.1. L'équipe de développement a expliqué cette option et vous pouvez lire l'explication complète du blog Make WordPress Core. La raison principale est qu'elle ne s'appelle pas à chaque fois, car si l'utilisateur met à jour manuellement le plugin, le crochet d'activation peut être ignoré.
Par conséquent, WordPress ne fournit pas de méthode par défaut pour appeler automatiquement les fonctions après les mises à jour du plug-in. C'est pourquoi vous devez créer votre propre processus.
comment gérer le processus de mise à jour
Dans cette partie de ce tutoriel, je vais vous montrer comment appeler automatiquement une fonction donnée après la mise à jour du plugin. Nous verrons dans la section suivante comment gérer correctement la mise à jour des options existantes et la création de nouvelles options (dans la même fonction).
Principe de cette méthode
Le principe global de notre méthode est que nous stockons le numéro de version du plugin à deux endroits: constantes dans le fichier principal du plugin et les options de la base de données.
Les numéros de la base de données stockeront la version actuellement installée de l'utilisateur, tandis que les numéros dans la constante sont la version actuelle. Si ces deux numéros sont différents, les options de base de données n'ont pas été mises à jour depuis la dernière mise à jour du plugin, nous devons donc le faire.
Dans ce cas, nous appellerons une fonction qui met à jour toutes les options nécessaires. Cette fonction met également à jour le numéro de version stocké dans la base de données: afin que nous n'atteignions pas cette fonction.
constant
Maintenant que nous avons couvert ce que nous allons faire, il est temps d'écrire du code! Tout d'abord, ajoutez une définition constante dans le fichier principal du plugin et prenez votre numéro de version actuel comme valeur. Pour éviter tout problème, nous testons s'il n'a pas encore existé.
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Habituellement, la version du plugin utilise une identité numérique, mais n'hésitez pas à l'utiliser si vous utilisez un système différent. La seule contrainte ici est de fournir un identifiant unique pour chaque version ou du moins pour chaque version qui doit modifier la base de données (nouvelles options, nouvelles défaillances, etc.).
Vérifiez la fonction
Nous devons maintenant écrire une fonction pour vérifier si la base de données doit être mise à jour. Cette fonction compare les constantes précédemment définies avec les valeurs actuellement stockées dans la base de données. Pour ce faire, nous nous assurerons que notre fonction est appelée n'importe où, en utilisant l'action plugins_loaded
, qui sera déclenchée une fois tous les plugins chargés.
if (!defined('MY_AWESOME_PLUGIN_VERSION')) define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Cette fonction sera simple. Nous récupérons le numéro de version stocké dans la base de données, comme toute autre option, et le comparons à la constante. Si ces valeurs sont différentes, nous appellerons la fonction my_awesome_plugin_activation()
.
function my_awesome_plugin_check_version() { } add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Maintenant, nous devons clarifier certains problèmes. Tout d'abord, que se passe-t-il si l'option n'existe pas encore dans la base de données? Si l'option n'existe pas, get_option()
renvoie False, ce qui est différent de votre numéro de version, donc la fonction sera appelée.
Alors pourquoi appelons-nous la fonction d'activation? Pour être clair, nous pouvons créer une nouvelle fonction spécifiquement utilisée pour le processus de mise à jour. Cependant, si vous faites cela, vous verrez que cette nouvelle fonction sera très similaire à l'activation, car les options de mise à jour peuvent être les mêmes que la création d'options.
Mettez à jour le numéro de version dans la base de données
Vous pouvez faire ce que vous voulez dans la fonction d'activation appelée ci-dessus. Cependant, une chose est nécessaire, et c'est de mettre à jour le numéro de version stocké dans la base de données. De cette façon, nous n'appelons pas nos fonctions chaque fois que la page est chargée.
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Veuillez noter l'astuce: nous n'utilisons pas add_option()
, utilisez uniquement update_option()
. En fait, si l'option n'existe pas encore, update_option()
le créera. S'il existe, il mettra à jour sa valeur à la valeur indiquée. C'est pourquoi nous pouvons utiliser notre fonction d'activation comme une fonction de mise à jour sans aucun problème.
Mise à jour les options
N'écrasez pas les choix de l'utilisateur!
La mise à jour de n'importe quelle option est de la même manière que nous mettons à jour le numéro de version: vous pouvez appeler update_option()
et c'est fait, même si c'est la première fois que WordPress voit l'option.
Cependant, nous ne voulons pas toujours mettre à jour les valeurs d'option. En fait, si vous utilisez des options, c'est généralement pour que vos utilisateurs personnalisent les paramètres. En utilisant update_option()
, vous écraserez les choix de l'utilisateur chaque fois que vous mettez à jour le plugin, ce qui n'est pas ce que nous voulons faire.
ci-dessus, nous voyons que si l'option n'existe pas, get_option()
renvoie false. Nous utiliserons ce comportement pour tester si l'option que nous souhaitons mettre à jour existe dans la base de données. Si tel est le cas, nous ne faisons rien. Sinon, nous créons cette option.
if (!defined('MY_AWESOME_PLUGIN_VERSION')) define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Veuillez noter que ce test est nécessaire pour les options que nous ne voulons pas remplacer. Dans certains cas, nous voulons peut-être le faire, compte tenu du numéro de version, nous ne voulons certainement pas garder l'ancienne valeur!
Cas spéciale - Array
Vous devez savoir que WordPress permet aux tableaux de stocker les valeurs de nos options, et les créer n'est pas plus difficile que de créer d'autres options. Par exemple:
function my_awesome_plugin_check_version() { } add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Si vous avez besoin de plusieurs paramètres, l'utilisation de tableaux est une bonne idée. De cette façon, vous n'utilisez pas beaucoup d'entrées dans la base de données et vous limitez les chances d'un autre plugin en utilisant des options avec le même nom. Cependant, cela peut causer des problèmes lorsque nous considérons le processus de mise à jour.
Pour comprendre les raisons, disons que vous avez un tableau comme une option avec certaines clés. Vos utilisateurs personnaliseront sûrement ces valeurs. En utilisant les tests que nous avons effectués ci-dessus, nous ne pouvons créer l'option que s'il n'existe pas et ces choix ne sont pas écrasés. Cela semble simple, mais que se passe-t-il si vous voulez créer une nouvelle clé dans un tableau?
Si l'option existe dans la base de données, le code précédent ne le créera pas, donc votre nouvelle clé n'existera pas. Cependant, si nous supprimons la condition, le tableau récupérera sa valeur par défaut chaque fois qu'une nouvelle mise à jour. Pas idéal. Heureusement, il y a une solution!
Tout d'abord, nous définissons un tableau contenant les valeurs par défaut des options (si une nouvelle clé existe).
if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version')) my_awesome_plugin_activation();
Ensuite, nous récupérons le tableau actuellement stocké dans la base de données.
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Maintenant, nous pouvons utiliser la fonction PHP array_merge()
pour prendre notre tableau par défaut comme premier paramètre et le tableau de l'utilisateur comme deuxième paramètre. De cette façon, nous obtiendrons un tableau contenant toutes les touches définies dans le tableau $default
et nous n'aurons aucune option qui n'existe pas. Si l'utilisateur modifie l'une des anciennes options, sa valeur est conservée. Avec array_merge()
, nous gardons toujours les dernières définitions.
if (!defined('MY_AWESOME_PLUGIN_VERSION')) define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Enfin, nous utilisons update_option()
pour stocker les résultats dans la base de données.
function my_awesome_plugin_check_version() { } add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Nous sommes presque terminés, mais si la fonction est exécutée pour la première fois, nous devons maintenant corriger une erreur que vous pourriez rencontrer.
Cette fonction est appelée lorsque le plugin est activé, ce que nous voulons. Cependant, dans ce cas, l'option n'existe pas encore, donc get_option()
renvoie false. Le problème est que l'utilisation de false comme paramètre de array_merge()
provoquera une erreur.
Ce que nous voulons est simple, si l'option n'existe pas, nous voulons que $option
soit un tableau vide. Pour ce faire, nous pouvons utiliser le deuxième paramètre de get_option()
qui indique la valeur par défaut à obtenir (afin de ne pas retourner false).
if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version')) my_awesome_plugin_activation();
Conclusion
Une fois que vous l'avez lu attentivement, le processus de gestion de la mise à jour des plugins WordPress n'est pas compliqué. Cependant, cela est important si vous utilisez des options, car il peut y avoir des problèmes sans options d'initialisation.
À l'heure actuelle, WordPress ne fournit pas de façon native de gérer les mises à jour du plug-in. En fait, étant donné les problèmes que nous avons énumérés ci-dessus, si nous voyons que ce type de fonctionnalité est introduit un jour, nous devons l'implémenter d'une manière similaire à ce tutoriel.
Vous pouvez obtenir le code de mon exemple de plugin ici. Considérez ce code comme un cadre pour implémenter votre propre processus de mise à jour du plugin WordPress. Si vous avez des commentaires, veuillez me le faire savoir dans les commentaires ci-dessous.
FAQ de mise à jour du plugin WordPress (FAQ)
Quelle est l'importance de mettre à jour régulièrement les plugins WordPress?
Les mises à jour régulières des plugins WordPress sont cruciales pour les raisons suivantes: Premièrement, les mises à jour incluent souvent de nouvelles fonctionnalités et fonctionnalités qui peuvent améliorer les performances du site Web. Deuxièmement, les mises à jour corrigent généralement les bogues et les vulnérabilités qui peuvent mettre en danger la sécurité du site Web. Enfin, les mises à jour garantissent la compatibilité avec la dernière version de WordPress, garantissant que votre site Web fonctionne bien et efficacement.
Comment assurer des mises à jour sûres de mon plugin WordPress?
Pour assurer des mises à jour de sécurité, assurez-vous de sauvegarder votre site Web avant de démarrer le processus de mise à jour. De cette façon, s'il y a des problèmes pendant le processus de mise à jour, vous pouvez facilement restaurer votre site Web à son état précédent. De plus, il est recommandé de tester les mises à jour sur le site de mise en scène avant de l'appliquer sur votre site en direct.
Que dois-je faire si la mise à jour du plugin échoue?
Si la mise à jour du plugin échoue, la première étape consiste à restaurer votre site Web à partir de la sauvegarde. Ensuite, essayez de déterminer la cause de l'échec. Cela pourrait être dû à un conflit avec un autre plugin ou thème, ou un problème de compatibilité avec votre version de WordPress. Une fois que vous avez identifié le problème, vous pouvez le résoudre vous-même ou contacter le développeur du plugin pour obtenir de l'aide.
Comment effectuer automatiquement le processus de mise à jour des plugins WordPress?
WordPress a des fonctionnalités intégrées qui vous permettent de mettre à jour automatiquement les plugins. Vous pouvez activer cette fonctionnalité en accédant à la section plug-in dans le tableau de bord WordPress, en sélectionnant le plug-in que vous souhaitez mettre à jour automatiquement et en cliquant sur Activer les mises à jour automatiques.
Si la mise à jour du plugin cause des problèmes avec mon site Web, puis-je annuler la mise à jour du plugin?
Oui, si la mise à jour du plugin cause des problèmes avec votre site Web, vous pouvez annuler la mise à jour du plugin. Il existe plusieurs plugins disponibles, tels que WP Rollback, qui vous permettent de restaurer facilement vers les versions précédentes du plugin.
Comment mettre à jour les plug-ins de WordPress avancés?
Le plug-in WordPress avancé est mis à jour de la même manière que le plug-in gratuit. Cependant, vous devez avoir une clé de licence valide pour accéder à la mise à jour. Après être entré dans la clé de licence, vous pouvez mettre à jour le plug-in à partir du tableau de bord WordPress.
Quelle est la meilleure façon de gérer les mises à jour de plusieurs sites WordPress?
Si vous gérez plusieurs sites WordPress, vous devrez peut-être passer beaucoup de temps à mettre à jour individuellement des plugins pour chaque site. Un moyen plus efficace consiste à utiliser des outils de gestion WordPress tels que ManageWP ou MainWP, qui vous permet de gérer les mises à jour pour tous vos sites Web à partir d'un seul tableau de bord.
Comment désactiver les mises à jour automatiques pour des plugins WordPress spécifiques?
Si vous souhaitez désactiver les mises à jour automatiques pour des plugins spécifiques, vous pouvez utiliser des plugins tels que les mises à jour faciles. Ce plugin vous permet de contrôler les mises à jour automatiques de chaque plugin de votre site Web.
Comment vérifier la compatibilité des mises à jour du plugin avec ma version de WordPress?
Avant de mettre à jour le plugin, vous pouvez vérifier sa compatibilité avec votre version WordPress en visitant la page du plugin sur le répertoire du plugin WordPress. Ici, vous trouverez des informations sur la compatibilité du plug-in avec différentes versions de WordPress.
Que dois-je faire si la mise à jour du plugin brise mon site Web?
Si la mise à jour du plugin brise votre site Web, la première étape consiste à restaurer votre site Web à partir de la sauvegarde. Ensuite, désactivez le plugin qui a causé le problème. Si vous ne pouvez pas accéder à votre tableau de bord WordPress, vous pouvez désactiver le plug-in via FTP en renommant le dossier plug-in dans le répertoire WP-Content / Plugins. Après avoir désactivé le plugin, vous pouvez dépanner ou contacter le développeur du plugin pour obtenir de l'aide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les blogs sont la plate-forme idéale pour que les gens expriment leurs opinions, opinions et opinions en ligne. De nombreux débutants sont impatients de créer leur propre site Web, mais hésitent à s'inquiéter des obstacles techniques ou des problèmes de coûts. Cependant, comme la plate-forme continue d'évoluer pour répondre aux capacités et aux besoins des débutants, il commence maintenant à devenir plus facile que jamais. Cet article vous guidera étape par étape comment créer un blog WordPress, de la sélection de thème à l'utilisation des plugins pour améliorer la sécurité et les performances, vous aidant facilement à créer votre propre site Web. Choisissez un sujet et une direction de blog Avant d'acheter un nom de domaine ou d'enregistrer un hôte, il est préférable d'identifier les sujets que vous prévoyez de couvrir. Les sites Web personnels peuvent tourner autour des voyages, de la cuisine, des critiques de produits, de la musique ou de tout passe-temps qui suscite vos intérêts. Se concentrer sur les domaines qui vous intéressent vraiment peuvent encourager l'écriture continue

WordPress est facile pour les débutants de commencer. 1. Après se connecter à l'arrière-plan, l'interface utilisateur est intuitive et le tableau de bord simple fournit tous les liens de fonction nécessaires. 2. Les opérations de base incluent la création et l'édition de contenu. L'éditeur WYSIWYG simplifie la création de contenu. 3. Les débutants peuvent étendre les fonctions du site Web via des plug-ins et des thèmes, et la courbe d'apprentissage existe mais peut être maîtrisée par la pratique.

Voulez-vous savoir comment afficher les catégories d'enfants sur la page des archives de la catégorie parent? Lorsque vous personnalisez une page d'archive de classification, vous devrez peut-être le faire pour le rendre plus utile à vos visiteurs. Dans cet article, nous vous montrerons comment afficher facilement les catégories d'enfants sur la page des archives de la catégorie parent. Pourquoi les sous-catégories apparaissent-elles sur la page des archives de la catégorie des parents? En affichant toutes les catégories d'enfants sur la page des archives de la catégorie parent, vous pouvez les rendre moins génériques et plus utiles aux visiteurs. Par exemple, si vous exécutez un blog WordPress sur les livres et que vous avez une taxonomie appelée "thème", vous pouvez ajouter une sous-taxonomie telle que "roman", "non-fiction" afin que vos lecteurs puissent

Récemment, nous vous avons montré comment créer une expérience personnalisée pour les utilisateurs en permettant aux utilisateurs d'enregistrer leurs publications préférées dans une bibliothèque personnalisée. Vous pouvez porter des résultats personnalisés à un autre niveau en utilisant leurs noms à certains endroits (c'est-à-dire des écrans de bienvenue). Heureusement, WordPress facilite l'obtention d'informations sur les utilisateurs connectés. Dans cet article, nous vous montrerons comment récupérer des informations liées à l'utilisateur actuellement connecté. Nous utiliserons le get_currentUserInfo (); fonction. Cela peut être utilisé n'importe où dans le thème (en-tête, pied de page, barre latérale, modèle de page, etc.). Pour que cela fonctionne, l'utilisateur doit être connecté. Nous devons donc utiliser

Dans le passé, nous avons partagé comment utiliser le plugin PostExpirator pour expirer les publications dans WordPress. Eh bien, lors de la création du site Web de la liste d'activités, nous avons trouvé ce plugin très utile. Nous pouvons facilement supprimer les listes d'activités expirées. Deuxièmement, grâce à ce plugin, il est également très facile de trier les publications par date d'expiration du post. Dans cet article, nous vous montrerons comment trier les publications par date d'expiration post-expiration dans WordPress. Code mis à jour pour refléter les modifications du plugin pour modifier le nom du champ personnalisé. Merci Tajim de nous avoir fait savoir dans les commentaires. Dans notre projet spécifique, nous utilisons des événements comme types de publication personnalisés. Maintenant

L'un de nos utilisateurs a demandé à d'autres sites Web comment afficher le nombre de requêtes et de temps de chargement dans le pied de page. Vous voyez souvent cela dans le pied de page de votre site Web, et il peut afficher quelque chose comme: "64 requêtes en 1,248 secondes". Dans cet article, nous vous montrerons comment afficher le nombre de requêtes et de temps de chargement de page dans WordPress. Collez simplement le code suivant partout dans le fichier de thème (par exemple Footer.php). requêtes

WordPressisGoodForvirontuallyAnyWebprojectDuetOtsSversatityAsacms.itexcelsin: 1) une convivialité, permettant à la manière

Peut apprendre WordPress dans les trois jours. 1. Master les connaissances de base, telles que les thèmes, les plug-ins, etc. 2. Comprenez les fonctions principales, y compris les principes d'installation et de travail. 3. Apprenez l'utilisation de base et avancée à travers des exemples. 4. Comprendre les techniques de débogage et les suggestions d'optimisation des performances.
