En programmation, l’initialisation des données est importante car c’est là que nous définissons les conditions préalables pour l’application, telles que ses attributs, ses fichiers et données requis, sa connexion à la base de données, etc..
WordPress lui-même a une procédure d'initialisation bien définie. Tout au long du cycle de vie d'une page, WordPress déclenche un certain nombre d'actions dont plusieurs ont déjà été abordées. À cette fin, il fournit un ensemble de points d’initialisation qui servent naturellement à initialiser l’application avant d’exécuter sa fonctionnalité principale..
En tant que développeurs de plugins et de thèmes, il est important de comprendre les cas d'utilisation et erreurs courantes de ces crochets d'initialisation, afin de construire des applications de qualité.
Dans cet article, nous allons examiner l’importance des crochets d’initialisation de WordPress et leur utilisation dans différents scénarios..
WordPress fournit une large gamme de points d'ancrage pouvant être utilisés dans le développement de plugins et de thèmes..
Dans une demande de page typique, tous les points d'ancrage d'action sont exécutés dans un certain ordre. Plus précisément, tous les points d'ancrage sont exécutés une fois que l'application de base WordPress a terminé son processus de chargement..
Donc, les crochets d'initialisation sont principalement utilisés pour, vous l'aurez deviné, initialiser le processus dans les plugins et les thèmes. Jetons un coup d'oeil à la disponibilité init
crochets dans WordPress, dans l'ordre de leur exécution:
register_widget
la fonction est exécutée dans ce crochet.admin_bar_init
, qui s’exécute après l’initialisation de la barre d’administration. Le codex WordPress ne fournit pas d'explication sur ce hook, et peu de plugins l'utilisent. Vous pouvez également consulter l’ensemble du processus d’exécution du hook d’action WordPress dans le Codex..
WordPress exécute chaque crochet dans un certain ordre (que vous pouvez voir dans le Codex). En tant que tel, il est important de prendre en compte l'ordre d'apparition lors de l'utilisation de chaque point d'ancrage d'action. Envisagez les scénarios suivants pour identifier les différences.
admin_init
À l'intérieur de init
CrochetSi nécessaire, nous pouvons définir des points d'ancrage WordPress au sein d'autres points d'ancrage. Dans une demande typique, init
le crochet court avant la admin_init
crochet. Essayons donc de produire quelque chose en plaçant admin_init
à l'intérieur de init
crochet:
add_action ('init', 'test_init'); function test_init () add_action ('admin_init', 'test_admin_init'); function test_admin_init () echo "Admin Init Inside Init";
Après avoir exécuté ce code, nous obtiendrons la sortie désirée en utilisant le écho
déclaration.
init
À l'intérieur de admin_init
CrochetVoyons le code et la sortie de ce scénario dans lequel un hook antérieur est défini dans un hook qui vient plus tard dans l'ordre d'exécution..
add_action ('admin_init', 'test_admin_init'); function test_admin_init () add_action ('init', 'test_init'); function test_init () echo "Init Init Init Admin";
Ici, nous n’obtiendrons aucun résultat - c’est prévu - car le init
le crochet s'exécute avant admin_init
crochet, et donc il n'est pas disponible après avoir défini le admin_init
crochet.
Comme vous pouvez le constater, il est essentiel de comprendre la procédure d’exécution des points d'ancrage pour créer des plugins performants. L'ordre d'apparition est important pour tous les crochets dans WordPress.
init
et admin_init
CrochetsParmi les crochets init, init
et admin_init
vaut la peine d’être explorée, car ces deux points d’accès sont largement utilisés dans de nombreux plugins. L'utilisation d'autres crochets d'initialisation est simple comparée à ces deux crochets.
En tant que tel, nous allons examiner les fonctionnalités de init
et admin_init
crochets.
le init
le crochet est exécuté dans chaque demande de tous les deux le frontend du site WordPress ainsi que le backend.
le admin_init
le crochet est exécuté après la section admin termine son processus de chargement. Donc, ce hook s’exécute également sur chaque requête de page d’administrateur. Les utilisateurs doivent être connectés pour profiter de ce crochet.
Étant donné que ces deux hooks sont exécutés à chaque requête, nous devons planifier les fonctionnalités de la mise en œuvre de ces hooks en conséquence, car cela peut avoir un impact important sur les performances du site..
init
CrochetsEn règle générale, les points d’initialisation sont disponibles dans la plupart des plugins WordPress existants et sont essentiels à la gestion de leur traitement..
WordPress ne définit pas ce que nous devrions et ce que nous ne devrions pas inclure; par conséquent, les développeurs peuvent commettre des erreurs mineures qui, à leur tour, peuvent entraîner une diminution considérable des performances. Dans cette section, nous allons voir comment nous pouvons utiliser efficacement les deux init
et admin_init
crochets.
Jetons un coup d'œil aux meilleures pratiques d'utilisation des hooks d'initialisation.
init
crochetinit
crochet pour l'enregistrement de nouveaux types de publication personnalisée.init
crochet car il garantit l'exécution dans chaque demande.init
accrocher, mais gardez à l’esprit que ces nouvelles règles ne prendront effet que lorsque nous aurons vidé les règles de réécriture.init
crochet.init
crochet.admin_init
crochetadmin_init
est la première action à exécuter dans la zone d'administration afin que nous puissions l'utiliser pour gérer le contrôle d'accès.Il y a beaucoup d'autres implémentations possibles avec ces hooks, mais ces fonctionnalités ont leurs propres hooks et il n'est pas nécessaire d'utiliser les hooks d'initialisation..
Nous trouvons souvent des scénarios dans lesquels les développeurs comprennent mal l’utilisation des points d’initialisation. Une mauvaise utilisation de ces hooks peut entraîner de sérieux problèmes de performances (ainsi que des plugins de mauvaise qualité).
Identifions les erreurs courantes et comment les éviter:
init
actions et finissent par créer une surcharge de performance inutile dans chaque demande. Nous devrions configurer un moyen de vider manuellement les règles de réécriture à l'aide d'un bouton ou de vider les règles relatives aux activités peu fréquentes, telles que la sauvegarde des paramètres du plug-in..init
et admin_init
peuvent être utilisés à la place de crochets spécifiques, les développeurs ont donc tendance à les utiliser sans connaître leur plein effet. Certains des scénarios courants où les développeurs utilisent init
et admin_init
Les crochets au lieu des crochets recommandés sont les suivants: add_menu_page
une fonction. Il est recommandé d'utiliser admin_menu
crochet pour créer des pages d'administration. Mais beaucoup de développeurs utilisent admin_init
crochet comme il est exécuté après admin_menu
crochet.wp_enqueue_scripts
crochet. Mais beaucoup de développeurs utilisent wp_enqueue_script
à l'intérieur de init
crochet pour charger des scripts et des styles.Il existe un certain nombre de situations similaires dans lesquelles les développeurs utilisent un hook d'initialisation commun au lieu d'un hook spécifique à une fonctionnalité, ce qui devrait être évité autant que possible..
Les points d’initialisation de WordPress jouent un rôle essentiel dans le développement de plugins et de thèmes. De nombreux développeurs utilisent mal les points d'ancrage, ce qui crée une surcharge de performances inutile. Dans cet article, nous avons discuté de l'utilisation appropriée de ces crochets, des erreurs courantes et de la manière de les éviter..
Nous pouvons maintenant appliquer la même technique à des hooks personnalisés spécifiques à un plugin. De nombreux plugins avancés utilisent leurs propres crochets d'action pour les rendre extensibles. Pour de tels plugins, nous pouvons définir des hooks d'initialisation spécifiques pour permettre aux développeurs de se concentrer sur les tâches d'initialisation sur des hooks prédéfinis, au lieu de les utiliser partout..
N'hésitez pas à partager vos expériences d'utilisation correcte des points d'ancrage ainsi que des erreurs d'utilisation des points d'initialisation. Au plaisir de voir ce que vous avez à partager dans les commentaires!