Développement avancé de WordPress: création de plug – ins orientés objet
Si vous êtes un développeur WordPress, apprendre la programmation orientée objet présente de nombreux avantages. Le Code oop vous aide à organiser votre code et à le rendre réutilisable. Il est plus extensible, plus facile à entretenir et encourage une culture d’utilisation 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, vous 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 l’oop. Dans ce tutoriel, vous 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 d’aide? 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 l’inscription. Le registre enverra vos données directement à mailchimp. Il s’agit d’un problème simple qui peut être facilement exécuté en utilisant le Code de procédure, mais qui nécessite une méthode oop.
C’est un projet d’extensibilité facile à voir. Vous pouvez ajouter des modules ailleurs, vous pouvez les implémenter pour travailler avec d’autres 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 d’abord le code complet du processus, Découvrons ce qui s’est 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 à l’avant et envoyer les données saisies à mailchimp. La fonction MSF _ post form () traite le premier. Si nous ne sommes pas sur une page, elle se connecte au contenu _ et le renvoie tel quel.
Sinon, nous créerons un formulaire à envoyer pour gérer les fichiers Ajax. Php. J’ai 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 n’est 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 n’est 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 l’URL (us6) au serveur dans la clé API. J’a i ajouté un style de base pour rendre le module entièrement adapté au thème 215. Instructions de chargement cb790e16c4aae22f91e32407c4dcd9c7
Vous finirez par avoir un grand nombre d’instructions if dans votre code, ce qui les rend difficiles à suivre et à maintenir, sans parler des noms de fonctions longs que vous devriez inventer. J’ai également constaté que le fait de placer toutes les opérations n’importe où nuit à la qualité du Code. Nous avons résolu certains de ces problèmes en utilisant les connaissances de base de l’oop. N’oubliez pas de réécrire oop à partir de zéro et de copier et coller le Code existant au besoin. Pour la plupart des projets, j’aime créer une classe d’emballage qui englobe toutes les fonctionnalités. C’est 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 qu’il 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 c’est là que toutes les opérations et tous les filtres sont insérés: instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 je trouve cette structure meilleure parce qu’elle est plus facile à autodocumenter. Vous pouvez voir tous les points où la classe se connecte à WordPress dans un seul billet
O.
Notez que lorsque vous utilisez des crochets dans une classe, vous ne pouvez pas simplement spécifier un nom de fonction, vous devez utiliser la Convention array ($this, ‘name _ of Function’). C’est parce que la fonction à laquelle nous faisons référence est dans la classe, pas dans l’espace global. J’ai également supprimé les préfixes de fonctions et simplifié leurs noms, ce qui a facilité leur utilisation. Il ne reste plus qu’à insérer ces fonctions dans le corps de la classe. Vous remarquerez que les deux changements sont le nom de la fonction (simplifié) et l’utilisation de la clé API, qui est maintenant prise de l’attribut $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 d’autres 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 à l’esprit que même si vous ne Publiez pas votre travail au public, vous pouvez l’utiliser seul dans plusieurs projets. Au fil du temps, simplifier l’expansion est un investissement dans la réduction de la charge de travail.
Tout d’abord, je vais séparer tout ce dont le module a besoin des composants optionnels. C’est un bon endroit pour une discussion rapide! Pensez – vous que le champ e – mail est obligatoire ou facultatif? Il peut aller n’importe où. Si vous utilisez toujours cette implémentation pour modifier la liste des destinataires, encoder peut être une bonne décision. Si vous pouvez l’étendre à l’édition d’un communiqué de presse et à la création d’une nouvelle liste (processus qui n’exige pas une seule adresse électronique), vous devriez envisager ses options. Aux fins de cet exemple, je considère qu’il est optionnel, mais inclus dans settingz
Nous avons essayé de penser à l’avenir, 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 l’attribut API \ u key. Ensuite, lorsque vous expliquez comment charger cb790e16c4aae22f91e32407c4dcd9c7, renommez mailchimphandler () submissionhandler () en mailchimphandler () et assurez – vous qu’il 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 l’assigner au constructeur: Lorsque quelqu’un envoie le module qui a la fonction submissionhandler, les instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 sont toujours appelées, mais elles n’existent plus parce que nous les renommons mailchimphandler. Maintenant, Nous recréerons la fonction send Manager: expliquez comment charger cb790e16c4aae22f91e32407c4dcd9c7 notre send Manager vérifie s’il y a un moyen de gérer cette opération. Rechercher le nom du fournisseur avec le gestionnaire ajouté. Si la méthode n’est pas trouvée, une notification est affichée. Sinon, 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 vous aider à mieux comprendre ce qui se passe. Instructions pour charger cb790e16c4aae22f91e32407c4dcd9c7 la dernière phrase utilise