Développer avec des crochets (hooks). Au fur et à mesure que vous plongez dans le développement avec les crochets WordPress,
il y a certains détails importants sur leur manière de fonctionner que vous devriez connaître.
Dans cette leçon, vous apprendrez quelques bonnes pratiques à suivre quand vous développez avec les crochets.
La première bonne pratique concerne le nommage des crochets.
Jetons un œil à certaines conventions que suit le cœur de WordPress.
Les actions sont généralement déclenchées au moment où quelque chose change, il est donc conseillé de choisir
un verbe d’action en lien avec ce changement.Par exemple, le crochet qui est déclenché par le cœur de WordPress
quand un article est supprimé est appelé delete_post. Si vous voulez ajouter une action avant le changement,
vous pouvez utiliser le préfixe pre_. Pour terminer, si vous voulez ajouter une action après l’événement,
la convention est d’utiliser le verbe au passé.
Parce que les filtres sont généralement liés à une variable qui peut être modifiée,
les crochets de filtre sont souvent nommés d’après cette variable.
Par exemple, le filtre qui vous permet de modifier le contenu d’un article est appelé the_content.
Quand vous nommez vos crochets, il est important d’éviter les collisions de nommage avec d’autres extensions ou thèmes.
Dans ce but, vous pouvez préfixer vos crochets avec le nom de votre extension ou un identifiant unique.
En utilisant un filtre, le type de variable qui est retourné n’est pas garanti, même s’il est documenté.
La raison est que c’est la dernière fonction de rappel (callback)
qui est utilisée par le filtre détermine le type de la variable. À première vue,
cela peut ne pas sembler être problématique, car comme vous êtes développeur, vous ferez en sorte de retourner une valeur
du même type que celle reçue. Cependant, si vous vous rappelez de la leçon sur les crochets personnalisés; comme vous pouvez vous accrocher à des actions et des filtres,
d’autres développeurs le peuvent aussi. Cela veut dire que si vous ajoutez un crochet à votre extension,
vous devez vous assurer que la valeur retournée est du bon type, sinon cela pourrait casser votre fonctionnalité.
Validez la sortie de votre filtre
Le meilleur moyen d’être sûr que la valeur rendue par les fonctions de retour reste du même type
que celui attendu est de valider le type de données dans votre code. Pour les types simples comme les entiers,
nombre ou booléens, vous pouvez utiliser le système de changement de type de PHP afin d’assurer que la valeur retournée est du bon type.
Cela convertira automatiquement la valeur de retour de tous les rappels accrochés vers le type attendu.
Cependant, pour des validations plus complexes ou pour d’autres types, il est plus approprié d’implémenter une validation manuelle.
Par exemple, pour une chaîne de caractères ou un tableau, il serait mieux de valider si la valeur retournée est
du bon type plutôt que de forcer son type ce qui pourrait amener à une erreur fatale.
Par exemple, vous pouvez utiliser la fonction PHP is_string() pour vérifier que la valeur retournée
par l’ensemble des fonctions est une chaîne de caractères. Dans le cas contraire, vous pouvez écraser sa valeur ou déclencher une erreur.
Vérifiez la valeur de votre fonction de rappel
Le fait que le type de variable retourné par un filtre puisse être modifié veut également dire qu’une valeur
de type incorrect peut également être passée à une fonction de rappel.
Par conséquent, si vous accrochez votre fonction de retour à un filtre, il est important de toujours vérifier
le type de la valeur reçue avant d’effectuer des opérations dessus. Vous pouvez utiliser les mêmes méthodes que précédemment
pour valider le type de la variable que vous recevez. Pour plus d’information sur le Jonglage de type des variables PHP,
vous pouvez vous référer à la documentation de PHP.
Il y a également une section dédiée aux fonctions de gestion des variables.
Une autre chose à savoir sur les crochets, c’est comment obtenir des informations sur eux.
WordPress permet à une fonction de rappel ou méthode d’être utilisée par plus d’un crochet à la fois.
A cause de ça, le crochet auquel la fonction est actuellement rattachée est parfois incertain.
Dans chaque fonction il est possible d’utiliser les fonctions current_filter ou current_action
pour déterminer quel est le filtre ou l’action qui a déclenché l’appel de la fonction.
Il est parfois important de savoir combien de fois un crochet a été appelé
afin de prévenir une exécution supplémentaire. Dans une fonction de retour, vous pouvez utiliser la fonction did_filter
pour vérifier combien de fois le filtre a été appelé durant la requête courante
et la fonction did_action pour déterminer combien de fois l’action a été appelée.
La documentation WordPress dispose d'une section dédiée aux crochets dans le manuel de l'API commune,
dont la lecture est recommandée lors du développement avec des crochets.