Hooks WordPress : le guide essentiel
Publié: 2021-01-26Les crochets WordPress sont un outil utile conçu pour les développeurs qui créent des plugins et des thèmes WordPress. En fait, ils sont si utiles que les créateurs de WordPress les utilisent dans tout le noyau de WordPress. Mais que sont exactement les hooks WordPress et comment les utilisez-vous ?
Dans ce guide, nous verrons comment utiliser efficacement les crochets WordPress et plonger dans les principes fondamentaux. Plongeons-nous !
Que sont les crochets dans WordPress ?
En un mot, les hooks WordPress sont des extraits de code WordPress qui saisissent et exécutent des extraits d'autres morceaux de code WordPress. Ils permettent essentiellement aux développeurs de naviguer facilement parmi différents fichiers dans leurs thèmes et plugins.Les crochets WordPress sont fournis dans le noyau WordPress. Chaque thème et plugin les utilise également.
Les crochets WordPress expliqués
L'objectif principal des crochets dans WordPress est de permettre aux développeurs de changer fondamentalement le fonctionnement du système de gestion de contenu sans altérer les fichiers principaux de WordPress. Parce que WordPress est open-source, vous pourriez jouer avec les fichiers principaux, mais il y a 99% de chances que vous le regrettiez en quelques minutes.
Bien que cela puisse être un peu difficile à comprendre pour les nouveaux développeurs, il est absolument essentiel d'apprendre comment fonctionnent les crochets WordPress. La plupart du temps, la confusion survient à cause de la terminologie utilisée par WordPress. Bien que l'action en coulisses soit assez similaire à celle de nombreux langages de programmation, le verbiage est différent. Il est souvent plus facile d'apprendre à les créer et à les utiliser en suivant d'abord des exemples, en les lisant, puis en s'exerçant.
Pour écrire des hooks WordPress, vous devez être capable de coder en PHP. PHP est le langage sous-jacent de la grande majorité de WordPress. Vous pouvez considérer les crochets comme des ouvertures sur lesquelles d'autres fonctions PHP peuvent s'accrocher. Vous pouvez également considérer les hooks WordPress comme des rappels qui font quelque chose sur les données ou l'affichage avant que l'utilisateur ne voie les données.

Deux types de crochets WordPress
Il existe deux principaux types de hooks WordPress que vous devrez apprendre :
- Crochets d'action WordPress
- Crochets de filtre WordPress
Jetons un coup d'œil à ces deux types de crochets WordPress et en quoi ils diffèrent. Nous explorerons également quelques exemples de crochets d'action et de crochets de filtre pour mieux illustrer leur utilisation.
La différence entre les crochets d'action WordPress et les crochets de filtre
Si vous avez passé du temps à revoir le codex de WordPress, vous avez probablement vu ces termes ballottés avec désinvolture. Malheureusement, l'une des faiblesses du codex est qu'il est écrit par les développeurs eux-mêmes. Comme effet secondaire, certaines distinctions importantes qui peuvent être évidentes pour eux, ne le sont pas pour ceux qui ne sont pas aussi familiers avec le code de base de WordPress.
Le moyen le plus simple de différencier les deux types de crochets WordPress est que les crochets d'action ne renvoient pas de valeurs, tandis que les crochets de filtre renvoient des valeurs.Pour ceux qui connaissent les langages de programmation courants, cela revient à dire que les crochets d'action ont un type de retour « void », alors que les crochets de filtre renvoient des données réelles.
Les hooks de filtre peuvent être considérés comme des hooks ou des événements de prétraitement. Un hook de filtre peut filtrer les résultats renvoyés par une requête de base de données pour ne contenir que les entrées portant le nom de famille « Smith ». Ce hook de filtre doit être appelé avant que la requête de base de données réelle ne soit appelée, indiquant à l'avance à WordPress qu'il devra retirer les résultats non pertinents avant de les renvoyer.
Les crochets d'action WordPress peuvent être considérés comme la récupération de quelque chose par le code. Un exemple courant de crochet d'action est l'insertion d'un fichier CSS supplémentaire dans une page de site pour la faire apparaître différemment. N'oubliez pas que les hooks modifient la façon dont les données sont affichées avant même qu'elles ne soient livrées à l'utilisateur. Un crochet d'action fournit un nouveau fichier CSS qui améliore l'expérience utilisateur. Ce processus n'implique pas de modifier le noyau de WordPress ni de modifier la racine Web principale du site. De cette façon, les hooks WordPress peuvent faciliter beaucoup, en conjonction avec des plugins, la gestion de plusieurs sites WordPress.
Hooks et filtres expliqués
Maintenant que nous avons examiné un aperçu plus abstrait des crochets et des filtres WordPress, plongeons-nous dans les détails plus techniques de leur fonctionnement.
Vous pouvez considérer un hook WordPress comme un événement qui se produit avec un nom. Un exemple d'un contenu dans le noyau de WordPress est appelé save_post . Avec les crochets, nous disons essentiellement que lorsque save_post est exécuté, nous voulons que notre crochet ou filtre s'attache et s'exécute à côté de lui.
Nous attachons ce que l'on appelle des rappels, ou fonctions de rappel, aux crochets dans WordPress. C'est juste une façon élégante de dire que nous demandons à WordPress d'exécuter le code contenu dans les fonctions que nous avons créées lorsque l'événement est déclenché et que nous avons « accroché » (comme save_post dans notre exemple ci-dessus).
Bien qu'il soit assez facile d'ajouter des crochets WordPress, comme nous l'explorerons plus tard, n'oubliez pas qu'un rappel mal écrit peut complètement ruiner votre chaîne de rappels. Si cela se produit, un maillon cassé dans la chaîne de rappels peut complètement ruiner tout votre dur labeur ! Faites toujours une sauvegarde avant d'apporter des modifications. Profitez d'un plugin de sauvegarde WordPress fiable avant d'apporter des modifications.
Intéressé par encore plus de détails techniques sur le fonctionnement des crochets ? Consultez la section suivante! Nous avons une explication plus approfondie ainsi qu'un tutoriel sur la création de votre premier crochet d'action et de votre premier crochet de filtre !
Comment fonctionnent les crochets dans WordPress ?
Rappelez-vous, bien qu'il existe quelques différences, les crochets d'action et les crochets de filtre dans WordPress peuvent être considérés comme largement identiques. Examinons brièvement le fonctionnement de ces crochets. Nous passerons en revue un exemple et un didacticiel plus loin dans l'article.
Les deux types de crochets doivent être enregistrés auprès de WordPress avant de les utiliser. Cela donne au CMS la liste des fonctions à attacher lorsqu'il y a un événement auquel nous avons « accroché » notre code. Assurez-vous également que les actions sont enregistrées en tant qu'actions et que les filtres sont enregistrés en tant que filtres.
Lors de l'ajout d'une action, profitez de la fonction principale de WordPress add_action() . Lors de l'ajout de filtres, utilisez la fonction principale de WordPress correspondante appelée add_filter() . Si vos rappels (fonctionnent en amont de la chaîne lorsque votre événement ou action est exécuté) ne renvoient aucune donnée, vous devez l'enregistrer en tant qu'action. S'il renvoie ce que WordPress appelle des données filtrables, enregistrez-le en tant que filtre.
Tout ce que vous spécifiez dans ces fonctions est exécuté lorsque votre site est ouvert par un utilisateur. WordPress a un générateur interne qui rassemble toutes ces actions et filtres pour nous. Il existe également des fonctions de suppression correspondantes pour les actions et les filtres. Ceux-ci peuvent être utilisés pour éliminer une fonction de votre chaîne de rappel. Ils sont souvent contenus dans des instructions conditionnelles dans WordPress PHP.
Tout comme nos fonctions d'ajout, elles s'appellent remove_action() et remove_filter() .
Comment créer un crochet dans WordPress ?
Le moment est enfin venu pour nous de réaliser notre premier hook dans WordPress ! N'oubliez pas que la création de crochets implique l'ajout de code personnalisé qui sera affiché et rendu aux utilisateurs de notre site.
Notez simplement que chaque fois que nous ajoutons du code personnalisé, nous ajoutons un certain niveau de risque de sécurité. C'est pourquoi le moment serait idéal pour vous assurer que vous disposez d'un plugin de sécurité WordPress en lequel vous pouvez avoir confiance, installé et prêt à l'emploi. Cela peut vous aider à avoir l'esprit tranquille et à atténuer les menaces potentielles pour votre site grâce à un code personnalisé qui pourrait introduire de nouvelles vulnérabilités.
Jetons un coup d'œil à la façon dont nous pouvons créer un crochet d'action très simple dans WordPress. Ensuite, nous examinerons un exemple de crochet de filtre dans le CMS.
Comment créer un crochet d'action dans WordPress ?
Pour notre exemple d'action, faisons quelque chose que presque tous les développeurs WordPress devront faire à un moment donné : ajuster le contenu de la page de connexion WordPress. La page est très générique.
Par exemple, si vous gérez un site WordPress pour un établissement universitaire, celui-ci peut vous demander de rappeler aux étudiants d'utiliser l'adresse e-mail de leur campus pour se connecter à leur portail WordPress. Nous pourrions ajouter un simple rappel sous les cases « Nom d'utilisateur » et « Mot de passe » qui dit « N'oubliez pas d'utiliser votre e-mail @myuniversity.edu comme nom d'utilisateur » afin de réduire les appels au service informatique demandant de l'aide pour vous connecter.
Ceci, bien sûr, serait plus aligné avec un crochet d'action plutôt qu'un crochet de filtre. En effet, un simple ajustement, tel que la modification du texte sur la page de connexion principale de l'utilisateur, ne renvoie en fait aucune donnée à filtrer.
Tout d'abord, nous devrons déterminer où exactement accrocher notre action. Dans la plupart des cas, regarder le fichier PHP dans lequel vous souhaitez ajouter du contenu peut être très instructif. En regardant le fichier WordPress contenant le contenu de connexion, il existe plusieurs déclencheurs d'action. Dans notre exemple de rappel aux étudiants d'utiliser leurs emails institutionnels, vous remarquerez le code suivant assez intéressant dans le fichier PHP de la page de connexion :
do_action( 'login_footer' );
La fonction do_action est une fonction principale de WordPress qui exécute notre crochet d'action sur demande. Bien entendu, cela est à condition que nous ayons enregistré toutes les fonctions que nous souhaitons attacher à ce hook.
Dans ce cas, « login_footer » est un crochet prédéfini par l'équipe WordPress. Bien qu'il soit intégré, nous pouvons toujours y attacher notre propre code. Par défaut, ce hook charge le contenu du pied de page de la page de connexion générique. Le pied de page serait un endroit idéal pour notre texte, c'est pourquoi nous profitons de ce crochet de section de page.
Nous pouvons ajouter une nouvelle fonction PHP à notre wp-login.php pour commencer. Tout ce que nous avons à faire est de générer une ligne de texte, comme ceci :
fonction add_uni_email_reminder() { <p>N'oubliez pas d'utiliser votre adresse e-mail @myuniversity.edu comme nom d'utilisateur !< /p> } do_action( 'login_footer', 'add_uni_email_reminder' );
Dans ce cas, nous avons simplement créé une nouvelle « action » dans le fichier wp-login.php . Le nom de la fonction du hook d'action (add_uni_email_reminder), sans les parenthèses de paramètre, peut être ajouté à la liste de paramètres de do_action() pour l'enregistrer afin qu'il soit exécuté lors du prochain rendu du pied de page.

Comment créer un crochet de filtre dans WordPress ?
Maintenant, nous sommes sur un rouleau! Nous avons appris les bases des crochets WordPress et comment exploiter leur puissance. Nous avons même effectué nous-mêmes une petite modification ! Il ne reste plus qu'à s'entraîner avec des crochets à filtre. N'oubliez pas qu'il s'agit de crochets qui renvoient un certain type de données que nous pouvons filtrer. Ceux-ci sont un peu plus complexes que les crochets d'action, mais maintenant que vous comprenez les bases des crochets, cela devrait être un peu plus facile.
Commençons par notre crochet de filtre WordPress. Tout d'abord, nous devrons décider quel filtre spécifique nous aimerions ajouter. Un élément que votre client pourrait demander est de personnaliser la fonctionnalité d'ajout de page. C'est ici que les utilisateurs de WordPress peuvent ajouter de nouveaux articles de blog. Pour rester aussi simple que possible, disons que nous voulons éditer le texte "Entrez le titre ici" contenu dans la zone de texte "Titre". Disons que nous voulons le rendre plus spécifique et qu'il dise "Entrer le titre de l'article de blog" à la place.
Notez que dans notre exemple de hook de filtre ci-dessous, notre fonction a un paramètre. De plus, l'exécution réelle de notre filtre a un paramètre « priorité » supplémentaire. Vous remarquerez également que la fonction réelle que nous utilisons pour enregistrer notre hook est exactement la même que notre exemple "action", add_action . La façon dont nous pouvons dire que cette fonction est un crochet de filtre plutôt qu'un crochet d'action est que lorsqu'elle est réellement exécutée, la fonction exécutée comme nous pouvons le voir dans le code de base de WordPress est apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); . Nous appliquons des filtres comme le nom de la fonction le suggère fortement.
C'est souvent un point de déclenchement pour les nouveaux utilisateurs. C'est vraiment juste un léger problème de formulation; une fois que vous avez dépassé cela, déchiffrer la différence entre les crochets et les filtres dans WordPress devient assez simple ! Sans plus tarder, plongeons-nous dans la modification de ce texte d'espace réservé !
function our_new_title_here( $title ) { $title = __( 'Entrez le titre du billet de blog', 'text-domain' ); renvoie $titre ; } add_action( 'enter_title_here', 'our_new_title_here', 10 );
Vous vous demandez peut-être ce que signifie ce « 10 » dans notre fonction add_action . J'espère que vous comprenez les deux premiers paramètres ; le premier est le hook WordPress par défaut, et le second est le nom de la fonction et du filtre que nous attachons à enter_title_here . Le « 10 » est le niveau de priorité que nous attribuons à ce filtre.
N'oubliez pas que les actions et les filtres dans WordPress sont une série de « rappels » en cascade ou de fonctions personnalisées qui sont exécutées. Ceux-ci se voient attribuer différents niveaux de priorité. Nous explorerons ce que signifient les différents nombres, quels sont les paramètres acceptables, etc., un peu plus tard. Cependant, il est important de comprendre que 10 est le niveau de priorité « normal » par défaut de WordPress pour les filtres et les actions pour le moment.
Où sont stockés les crochets WordPress ?
Vous vous demandez peut-être où WordPress pourrait éventuellement stocker toutes ces actions et filtres. Nous avons référencé le noyau WordPress, mais il s'agit simplement de l'emplacement des actions et des filtres intégrés et des fonctions qui leur sont associées . Les utilisateurs chevronnés de WordPress savent probablement que ces crochets ne sont stockés dans aucune des bases de données créées lors de l'installation de WordPress.
L'une des caractéristiques les plus uniques des actions et des filtres dans WordPress est qu'ils ne sont pas vraiment « stockés » n'importe où ! Une fois que nous avons ajouté une action ou un filtre, cette action ou ce filtre est accessible dans le monde entier sur notre site WordPress. Si vous pensez qu'il n'y a aucun moyen possible qu'il ne soit stocké nulle part , vous avez raison !
Bien que la structure soit assez complexe, il existe une variable PHP où toutes nos actions et filtres sont stockés. Cette variable est globale et appelée $wp_filter . Ne jouez pas avec cette variable directement !
Pour ceux qui s'intéressent aux détails techniques, cette variable $wp_filter est un tableau PHP. Il contient une grande série d'objets de type WP_HOOK . Dans le fichier PHP que vous pouvez lire dans wp-includes/class-wp-hook.php , il y a une méthode importante : this->apply_filters() . Cette méthode est ce qui déclenche tous nos rappels et "enregistre" nos filtres et crochets personnalisés. C'est essentiellement le pain et le beurre des crochets WordPress.
Afin de tirer pleinement parti de cette fonctionnalité impressionnante de WordPress, nous devrons connaître certains des crochets WordPress les plus courants. Ne cherchez pas plus loin que notre aide-mémoire ci-dessous!
Liste des Hooks WordPress : Aide-mémoire sur les Hooks WordPress
Commençons par une petite dose de réalisme : il n'y a aucun moyen possible de passer en revue chaque crochet dans WordPress. Heureusement, certains chercheurs ont compilé une liste de (littéralement) chaque action et filtre, pour ceux qui sont curieux. Vous pouvez voir une liste complète de tous les crochets WordPress ici, mais veillez à consulter les avertissements de sécurité concernant chaque crochet. Vous ne devez pas utiliser ceux qui sont étiquetés comme « obsolètes ». Cela signifie qu'ils peuvent ou non être pris en charge dans la version la plus moderne de WordPress, mais dans tous les cas, ils ne seront bientôt plus pris en charge.
Selon toute vraisemblance, 90% du temps, vous ne serez intéressé que par quelques crochets WordPress. Voici cinq des actions et filtres les plus populaires de WordPress, ainsi qu'une brève explication de ce qu'ils sont !
- add_setting() – Comme son nom l'indique, cette action ajoute à vos paramètres WordPress. Vous ne voudrez probablement pas inclure cette action sur une page destinée aux utilisateurs, mais cela peut vous sauver la vie si vous modifiez des pages administratives.
- apply_filters() - Celui-ci vous semble-t-il familier ? Il devrait, parce que nous l'avons utilisé plus tôt! Cela appelle immédiatement toute notre chaîne de rappels associée à un hook.
- esc_attr () - Le nom de celui-ci est un raccourci pour "échapper aux attributs HTML". Échapper au HTML signifie que nous utilisons des codes ASCII pour les symboles HTML. Ceci est presque universellement utilisé pour « assainir les entrées » des pages. En d'autres termes, cette action serait hautement souhaitable pour s'attacher à une exécution de crochet lorsqu'un utilisateur soumet un formulaire. Il empêche les utilisateurs d'attaquer votre site avec des attaques de scripts intersites en particulier.
- the_content() – Le nom de ce crochet semble probablement simple, parce qu'il l'est ! Il saisit simplement le contenu du message en cours de visualisation. C'est idéal si vous autorisez les utilisateurs à exporter le contenu d'un message. Par exemple, certains sites offrent aux utilisateurs Premium la possibilité d'exporter n'importe quel article sous forme de fichier PDF.
- wp_nav_menu() - Raccourci pour "WordPress Navigation Menu", ce crochet est un crochet d'action. Il est utilisé pour afficher simplement le menu de navigation principal que vous créez lorsque vous créez votre site WordPress pour la première fois. C'est très bien si vous avez des pages qui ont une mise en page très différente et que vous souhaitez afficher votre menu dans une zone alternative.
Dans quel ordre les Hooks WordPress s'exécutent-ils ? La séquence de tir des crochets WordPress
Malheureusement, l'ordre exact dans lequel les hooks WordPress s'exécutent n'est pas aussi évident que vous pourriez l'imaginer. Cela est dû au volume considérable de crochets. Un chercheur a effectué une analyse avancée de cela pour compter le nombre de crochets en cours d'exécution et l'ordre dans lequel ils ont été exécutés lors de la visite de la page d'accueil d'un site WordPress.
Comme si ce n'était pas assez complexe, certains crochets WordPress ont des crochets de différentes priorités ! Vous pouvez jeter un œil aux centaines de crochets exécutés et à leurs commandes dans cet article sur la séquence de déclenchement des crochets WordPress. Attention : vous ne devez pas tenter d'exécuter cette analyse sur autre chose qu'un serveur de test où vous pouvez vous permettre de tout perdre !
Bien que nous ne puissions pas faire grand-chose sur l'ordre des crochets par défaut, nous pouvons faire quelque chose sur l'ordre des crochets que nous spécifions. C'est là qu'intervient la priorité des crochets. Nous y avons fait allusion plus tôt.
Comment fonctionne la priorité dans les crochets WordPress ?
Comme nous l'avons mentionné, le niveau de priorité par défaut attribué à un crochet par WordPress est « 10 ». Quoi que vous décidiez de donner la priorité, n'oubliez pas que la valeur doit être un entier positif. Cela signifie que, malheureusement, « 0 » n'est pas une valeur valide. De plus, -100 ne serait pas valide et 0.5 ne serait pas valide. Cependant, 1 fonctionnerait, tout comme 1111.
En général, plus l'entier est petit, plus la priorité est faible. Si vous souhaitez qu'un crochet s'exécute après un crochet auquel vous avez attribué la valeur par défaut de 10, par exemple, vous pouvez définir sa priorité sur 9. Votre crochet de priorité la plus basse peut recevoir un 1. De plus, les crochets WordPress peuvent être attribués de la même manière. priorité. C'est si vous ne vous souciez pas de l'ordre dans lequel ils se déroulent.
Conclusion : les crochets dans WordPress
L'une des plus grandes pierres d'achoppement pour les nouveaux développeurs WordPress est à quel point une grande partie de ces informations peuvent être non standardisées. Bien que vous trouviez de nombreux blogs techniques, beaucoup couvrent des sujets étroits et peuvent être difficiles à agréger.
Le meilleur moyen est de commencer à expérimenter des crochets d'action WordPress et des crochets de filtre sur votre site. Une fois que vous aurez créé des crochets WordPress plus complexes, vous devrez apprendre les crochets que vous avez tendance à utiliser le plus souvent. Au fil du temps, vous mémoriserez ces crochets. C'est un processus ardu, et personne n'est capable de mémoriser chacun de ces crochets.
Le codex WordPress est la meilleure ressource à utiliser dans votre parcours pour devenir le prochain meilleur développeur WordPress au monde.
Kristen écrit des tutoriels pour aider les utilisateurs de WordPress depuis 2011. Vous pouvez généralement la trouver en train de travailler sur de nouveaux articles pour le blog iThemes ou de développer des ressources pour #WPprosper. En dehors du travail, Kristen aime tenir un journal (elle a écrit deux livres !), faire de la randonnée et du camping, cuisiner et vivre des aventures quotidiennes avec sa famille, dans l'espoir de vivre une vie plus présente.
