Développement avancé de WordPress: création de plug ins orientés objet

êtes un développeur WordPress, apprendre la programmation orientée objet présente de nombreux avantages. Le Code oop aide à organiser votre code et à le rendre réutilisable. Il est plus extensible, plus facile à entretenir et encourage une culture damp;rsquoutilisation des modèles de conception. Il s’agit du deuxième de notre série de six articles sur wordpress pour les développeurs avancés. Cette série, qui fait suite au populaire WordPress que nous avons développé pour les utilisateurs intermédiaires, présente un certain nombre de sujets de codage riches, y compris le développement détaillé de thèmes, la préparation de thèmes personnalisés, la création de plugins, la personnalisation des types et des catégories de messages, les requêtes et les boucles, La personnalisation des champs et des métadonnées, et la localisation.
La semaine dernière, nous avons étudié les bases de lamp;rsquooop. Dans ce tutoriel, commencez à créer des plug ins en utilisant les nouvelles connaissances des techniques de Programmation orientée objet. Nous commencerons par apporter des changements structurels au Code en utilisant la base de la méthode objet. Le Code de tiers dans les plug ins et les sujets utilise généralement de nombreux codes
On est piégés. Note: il est important d’avoir une connaissance pratique de PHP, car c’est le langage WordPress de base de cette série, couvrant des thèmes avancés pour les développeurs. Je vais faire référence au fragment de code dans cette série. Pour ce tutoriel, il est également important de comprendre les bases de la création de plug ins. Besoin damp;rsquoaide? Démarrer avec le développement de plugins WordPress: un guide faisant autorité. Écrire un plug in orienté objet: ce projet dans cette leçon, nous avons créé un plug in qui ajoutera un module
Ou le contenu de nos messages personnels après lamp;rsquoinscription. Le registre enverra vos données directement à mailchimp. Il samp;rsquoagit damp;rsquoun problème simple qui peut être facilement exécuté en utilisant le Code de procédure, mais qui nécessite une méthode oop.
Camp;rsquoest un projet damp;rsquoextensibilité facile à voir. Vous pouvez ajouter des modules ailleurs, pouvez les implémenter pour travailler avec damp;rsquoautres API, comme madmimi, et même ajouter des données à la base de données locale. Vous verrez à quel point ce sera facile plus tard. Regardons damp;rsquoabord le code complet du processus, Découvrons ce qui samp;rsquoest passé, puis faisons quelques refacturations pour ajouter un peu de magie oop. Pour expliquer comment charger cb790e16c4aae22f91e32407c4dcd9c7, nous devons faire deux choses: créer un formulaire à lamp;rsquoavant et envoyer les données saisies à mailchimp. La fonction MSF _ post form () traite le premier. nous ne sommes pas sur une page, elle se connecte au contenu _ et le renvoie tel quel.
non, nous créerons un formulaire à envoyer pour gérer les fichiers Ajax. Php. Jamp;rsquoai ajouté deux fonctions de sécurité au module. Le plus évident est le champ nonce et le plus subtil est le champ texte du nom Honeypot. Ce champ namp;rsquoest pas utilisé et est caché par CSS. Je lui ai délibérément donné un nom commun (par opposition à
Nous pouvons (devrions) Effectuer des contrôles supplémentaires, mais ce namp;rsquoest pas o
Les principaux objectifs de ce tutoriel, donc je vais les énumérer ici. Vérifiez également le côté serveur de courriel pour faire correspondre le serveur dans lamp;rsquoURL (us6) au serveur dans la clé API. Jamp;rsquoa i ajouté un style de base pour rendre le module entièrement adapté au thème 215. Instructions de chargement cb790e16c4aae22f91e32407c4dcd9c7 Ce code fonctionne bien pour le moment, mais il devient rapidement plus complexe lorsque essayez damp;rsquoajouter des fonctionnalités. Comment gérerez plusieurs listes? Que diriez damp;rsquoajouter le même formulaire au reste du site? Que dois je faire si je veux passer rapidement damp;rsquoun fournisseur de listes de diffusion à un autre?
Vous finirez par avoir un grand nombre damp;rsquoinstructions if dans votre code, ce qui les rend difficiles à suivre et à maintenir, sans parler des noms de fonctions longs que devriez inventer. Jamp;rsquoai également constaté que le fait de placer toutes les opérations namp;rsquoimporte où nuit à la qualité du Code. Nous avons résolu certains de ces problèmes en utilisant les connaissances de base de lamp;rsquooop. Namp;rsquooubliez pas de réécrire oop à partir de zéro et de copier et coller le Code existant au besoin. Pour la plupart des projets, jamp;rsquoaime créer une classe damp;emballage qui englobe toutes les fonctionnalités. Camp;rsquoest le cadre de base.
Instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 je passe le tableau de configuration au nouvel objet. Cela facilitera la mise en place de différents environnements si nécessaire. Je peux modifier le tableau et la classe utilisera les informations quamp;rsquoil contient, comme la façon dont WP config fonctionne. PHP pour WordPress. Les fonctions de construction sont exécutées immédiatement après la création de la classe, ce qui signifie que camp;rsquoest là que toutes les opérations et tous les filtres sont insérés: instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 je trouve cette structure meilleure parce quamp;rsquoelle est plus facile à autodocumenter. Vous pouvez voir tous les points où la classe se connecte à WordPress dans un seul billet
O.
Notez que lorsque utilisez des crochets dans une classe, ne pouvez pas simplement spécifier un nom de fonction, devez utiliser la Convention array ($this, amp;lsquoname _ of Functionamp;rsquo). Camp;rsquoest parce que la fonction à laquelle nous faisons référence est dans la classe, pas dans lamp;rsquoespace global. Jamp;rsquoai également supprimé les préfixes de fonctions et simplifié leurs noms, ce qui a facilité leur utilisation. Il ne reste plus quamp;rsquoà insérer ces fonctions dans le corps de la classe. Vous remarquerez que les deux changements sont le nom de la fonction (simplifié) et lamp;rsquoutilisation de la clé API, qui est maintenant prise de lamp;rsquoattribut $API _ key. Voici le Code oop complet:
Les instructions pour charger le Code cb790e16c4aae22f91e32407c4dcd9c7 sont maintenant plus faciles à comprendre, mieux structurées et plus extensibles. Nous pouvons faire beaucoup de choses pour étendre le Code. Concentrons nous sur deux aspects: examiner les champs du formulaire et ajouter damp;rsquoautres fournisseurs. Selon nos besoins, il peut y avoir plusieurs champs de formulaire supplémentaires. On peut les coder quand on a besoin de changement, mais je préfère utiliser des crochets pour contrôler ces choses. Gardez à lamp;rsquoesprit que même si ne Publiez pas votre travail au public, pouvez lamp;rsquoutiliser seul dans plusieurs projets. Au fil du temps, simplifier lamp;rsquoexpansion est un investissement dans la réduction de la charge de travail.
Tout damp;rsquoabord, je vais séparer tout ce dont le module a besoin des composants optionnels. Camp;rsquoest un bon endroit pour une discussion rapide! Pensez que le champ e mail est obligatoire ou facultatif? Il peut aller namp;rsquoimporte où. utilisez toujours cette implémentation pour modifier la liste des destinataires, encoder peut être une bonne décision. pouvez lamp;rsquoétendre à lamp;rsquoédition damp;rsquoun communiqué de presse et à la création damp;rsquoune nouvelle liste (processus qui namp;rsquoexige pas une seule adresse électronique), devriez envisager ses options. Aux fins de cet exemple, je considère quamp;rsquoil est optionnel, mais inclus dans settingz
Nous avons essayé de penser à lamp;rsquoavenir, et les changements futurs pourraient ne pas nécessiter de changement au Code existant. Puisque le tableau de configuration a une structure différente, nous devons mettre à jour le constructeur. Je vais utiliser un fournisseur qui contient des informations sur chacun des fournisseurs que nous utilisons au lieu de lamp;rsquoattribut API u key. Ensuite, lorsque expliquez comment charger cb790e16c4aae22f91e32407c4dcd9c7, renommez mailchimphandler () submissionhandler () en mailchimphandler () et assurez quamp;rsquoil fait référence à la clé API dans la nouvelle propriété fournisseur. Vous pouvez voir les changements dans WP _ Remote Post (): instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 Enfin, nous devons démarrer le bon gestionnaire au bon moment. Pour ce faire, nous avons modifié le tableau de configuration pour la dernière fois, y compris le gestionnaire à utiliser. Instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 je vais également ajouter le fournisseur aux propriétés de la classe et lamp;rsquoassigner au constructeur: Lorsque quelquamp;rsquoun envoie le module qui a la fonction submissionhandler, les instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 sont toujours appelées, mais elles namp;rsquoexistent plus parce que nous les renommons mailchimphandler. Maintenant, Nous recréerons la fonction send Manager: expliquez comment charger cb790e16c4aae22f91e32407c4dcd9c7 notre send Manager vérifie samp;rsquoil y a un moyen de gérer cette opération. Rechercher le nom du fournisseur avec le gestionnaire ajouté. la méthode namp;rsquoest pas trouvée, une notification est affichée. non, lancez la méthode. Comme nous avons fait beaucoup de changements, je vais publier le code complet du plug in ci dessous. Essayez de ne pas copier et coller le code ci dessous. Au lieu de cela, utilisez ces changements pour aider à mieux comprendre ce qui se passe. Instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 la dernière phrase utilise

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins