Comment ils fonctionnent – WPShout

By | mars 2, 2021

Expert WordPress

Cet article présente l'un des sujets les plus importants du développement WordPress: les hooks WordPress, y compris les hooks d'action et les hooks de filtre. Les hooks sont au cœur non seulement du fonctionnement des plugins WordPress, mais de presque tout le code de l'écosystème WordPress: la plupart des thèmes WordPress utilisent fortement les hooks, tout comme le «noyau WordPress» lui-même. Les hooks WordPress sont absolument un sujet incontournable dans le développement WordPress.

Nous avons rempli cette explication des hooks WordPress avec une vidéo de présentation utile, des points clés, une infographie détaillée, un quiz et même un résumé (!). C'est parce que ce n'est pas seulement l'un de nos articles habituels: c'est un exemple de chapitre de notre cours "Apprendre le développement WordPress" Opérationnel.

Si vous aimez cet article, assurez-vous de consulter Opérationnel. Il y a environ 40 autres chapitres d'où celui-ci est venu. Nous le soutenons comme le meilleur guide du développement WordPress sur le marché.

Sérieux à propos de l'apprentissage du développement WordPress?

Opérationnel est notre cours complet «apprendre le développement WordPress». Désormais dans sa troisième édition mise à jour et étendue, il a aidé des centaines d'acheteurs satisfaits à apprendre le développement WordPress de manière rapide, intelligente et approfondie.

"Je pense que toute personne intéressée par l'apprentissage du développement WordPress A BESOIN de ce cours.

Avant d'acheter Up and Running, je m'étais appris du code WordPress, mais je manquais de direction. Regarder les vidéos du cours était comme un tas de lumières allumées.

Je suis passé d'une connaissance vague du fonctionnement des thèmes, des fonctions et de WordPress lui-même à leur maîtrise. Tout est devenu beaucoup plus clair.

Je recommande très volontiers ce cours à toute personne disposée à écouter.

–Jason Robie, développeur WordPress

Passez à la prochaine étape de votre parcours de développement WordPress!


Points clés à retenir sur les Hooks WordPress:

  • Crochets WordPress sont une fonctionnalité WordPress cruciale qui permet aux développeurs d'insérer du code personnalisé dans le traitement PHP de WordPress, à des jonctions spécifiées au cours de ce traitement.
  • Les développeurs écrivent ce code personnalisé dans des fonctions PHP appelées fonctions accrochées. Il existe deux types de fonctions accrochées: Actions et les filtres.
  • Deux types de crochets existent: crochets d'action et crochets de filtre. Les crochets d'action «accrochent» les actions et les crochets de filtre «accrochent» les filtres.
  • Les filtres reçoivent du code ou du balisage par leurs crochets de filtre; ils modifient ce qu'ils sont passés et doivent revenir le résultat en retour pour WordPress à utiliser dans son traitement régulier.
  • Les actions, en revanche, n'ont pas besoin de revenir une valeur, et souvent ne sont pas passés des paramètres spécifiques par leurs hooks d'action.

Dans ce chapitre, nous couvrons l'une des idées les plus importantes du développement de plugins et de thèmes WordPress: les hooks. Vous pouvez également dire que ce chapitre traite des «actions et filtres», car les actions et les filtres sont les deux types de fonctions qui interagissent avec les hooks WordPress.

Comprendre les crochets n’est pas si simple, en partie parce que les termes eux-mêmes sont assez difficiles à visualiser et à distinguer les uns des autres.

Mais le gain est énorme: en tant que développeur, nous constatons que travailler avec des filtres et des actions est probablement le la manière la plus courante d'interagir avec WordPress. Et avec le temps, c'est également devenu l'une de nos activités préférées dans WordPress.

Terminologie – Hooks vs Actions vs Filters

Particulièrement dans ce cas, comprendre les termes – «crochet», «action» et «filtre» – représente la moitié de la bataille. Le Codex WordPress, par exemple, utilise les trois termes de manière très décontractée et incohérente.

Les définitions que nous utilisons dans ce chapitre sont les plus courantes que vous trouverez dans WordPress en général, et elles sont les meilleures pour comprendre réellement ce qui se passe. Alors restez fidèle à la compréhension que nous présentons ici et ne vous découragez pas lorsque d'autres personnes utilisent ces termes de plusieurs manières.

Relation entre crochet, action et filtre

Les actions et les filtres sont des fonctions personnalisées. Ils s'accrochent aux crochets d'action et aux crochets de filtre.

C'est juste pour commencer; ne vous inquiétez pas si cela n'a pas de sens pour le moment:

  • UNE accrocher est un endroit dans le code de WordPress qui peut y ajouter des fonctions. Lorsque vous créez un hook, vous vous donnez, ainsi qu'aux autres développeurs, la possibilité d'ajouter des fonctionnalités supplémentaires à cet emplacement.
  • Fonctions accrochées sont des fonctions PHP personnalisées que nous pouvons «accrocher» à WordPress, aux emplacements spécifiés par ses hooks.
  • Il existe deux types de fonctions accrochées: Actions et les filtres. Les filtres modifient la sortie existante, tandis que les actions peuvent effectuer n'importe quel type de fonctionnalité personnalisée.
  • Crochets se déclinent en deux types:crochets d'action et crochets de filtre– en fonction du type de fonction accrochée qu'ils acceptent.

Jusque-là, ça va? Ne vous inquiétez pas de toute façon et passons à autre chose. (À la fin, vous voudrez peut-être revenir et voir si ce qui précède a plus de sens.)

Voici un résumé visuel de ces informations. C'est aussi dans Crochets WordPress dans Ressources.

guide visuel des hooks wordpress

N'essayez pas d'aller trop loin pour le moment. Pour le moment, comprenez simplement que "Les actions se raccordent à des crochets d'action et les filtres se connectent à des crochets de filtre."

WordPress Hooks: amener des entrepreneurs externes dans l'usine WordPress

Les hooks sont la façon dont WordPress invite les «entrepreneurs externes» qui l'aident à faire son travail.

Pour expliquer les hooks, nous reviendrons sur notre analogie centrale de WordPress en tant qu'usine.

N'oubliez pas que WordPress fait appel à entrepreneurs externes faire une partie de son travail. Nos sous-traitants n'ont pas de place permanente dans l'usine WordPress – ils sont coincés à l'extérieur jusqu'à ce qu'ils soient invités par l'usine elle-même.

Pour nos besoins, ces entrepreneurs externes viennent de deux endroits:

  1. Plugins
  2. Le functions.php fichier dans le thème parent ou enfant

Les entrepreneurs extérieurs eux-mêmes sont les code personnalisé dans les plugins et functions.php qui modifient le fonctionnement de l'usine WordPress.

Les hooks tirent du code extérieur, de manière spécifiée et à des endroits spécifiés.

Crochets—À la fois des crochets d'action et des crochets de filtre — voilà comment WordPress invite ces entrepreneurs extérieurs. En d'autres termes, les hooks WordPress tirent du code extérieur, de manière spécifiée et à des endroits spécifiés.

Comment WordPress fait appel à ses «entrepreneurs»

Nous pouvons considérer les «crochets» WordPress comme de véritables crochets d'usine géants, sur lesquels les entrepreneurs chevauchent, comme ceci:

Chaque crochet est étiqueté avec un nom spécifique, tel que wp_head, correspondant à une partie du processus de l'usine WordPress (dans le cas de wp_head, le processus de création du code HTML de la page section).

Ces crochets se déplacent vers le hall afin que les entrepreneurs puissent les monter, et ils le font dans un ordre spécifique. Le wp_head le crochet se rend dans le hall et revient juste avant terminé, le wp_footer le crochet se rend dans le hall et revient juste avant se termine, et ainsi de suite. Ainsi, l'entrepreneur monte toujours son crochet directement vers la partie active à travailler de l'usine.

Lorsqu'un entrepreneur veut faire partie d'un processus spécifique, il attend que ce crochet apparaisse à l'entrée – et monte ce crochet directement dans la partie appropriée de l'usine.

Si l’entrepreneur n’a pas utilisé le crochet approprié, il n’a pas pu se rendre là où il va dans l’usine. Les hooks sont ce qui "invite" en dehors du code (à partir de functions.php, plugins, etc.) dans des zones définies du traitement PHP de WordPress.

Deux types de crochets, deux types d'entrepreneurs

Nous sommes à mi-chemin de la compréhension des hooks, des actions et des filtres WordPress. L'autre partie est un peu plus précise: le lobby a deux types de crochets, crochets d'action et crochets de filtre.

Regardez en arrière Crochets WordPress diagramme, et comprenons l'action et les hooks de filtrage.

Crochets d'action

Crochets d'action ont tendance à être suspendus à des jalons: par exemple, "vous avez presque terminé la création de la page section "pour le wp_head crochet d'action, ou "vous avez presque terminé la création de la page section "pour le wp_footer crochet d'action.

Lorsque les sous-traitants montent des crochets d'action dans l'usine, ils ont tendance à faire à peu près tout ce qu'ils veulent: ajouter un tas de choses à la page, ou faire complètement d'autres choses comme consigner une erreur ou même envoyer un e-mail.

Crochets de filtre

Crochets de filtre fonctionnent un peu différemment. Les entrepreneurs qui utilisent des hameçons d'action peuvent faire ce qu'ils veulent et n'ont aucune responsabilité envers qui que ce soit. Mais les entrepreneurs qui utilisent des crochets de filtre s’insèrent eux-mêmes dans le processus normal des travailleurs: ils ont quelque chose à gérer – par exemple un bloc de texte – et doivent donner ce même bloc de texte (légèrement modifié, probablement) retour au worker régulier, via un PHP revenir déclaration.

Ainsi, un entrepreneur utilisant un crochet filtrant ne fait généralement pas ce qu’il veut; il travaille avec l’œuvre qu’il a confiée dans sa section de l’usine. "Cette section fonctionne sur le titre du message", pourrait dire le responsable de la section. "Faites ce que vous voulez pour le titre du message, mais si vous ne me rendez pas le titre du message après avoir apporté vos modifications, tout ce processus ne fonctionnera pas correctement."

Quoi Sommes Ces entrepreneurs?

Nos «sous-traitants» sont des fonctions PHP personnalisées que nous (ou n'importe qui d'autre) pouvons écrire.

Espérons que nous ayons du sens jusqu'à présent; maintenant, nous allons devenir un peu plus techniques afin que vous puissiez réellement commencer à écrire ces choses.

Les entrepreneurs – à la fois ceux qui sont accrochés aux crochets d'action et ceux qui sont accrochés aux crochets de filtre – sont personnalisés Fonctions PHP que nous ou n'importe qui d'autre pouvons écrire.

Parce que ces fonctions se retrouvent dans WordPress en s'attachant à des hooks WordPress – c'est-à-dire en étant «accrochées» de l'extérieur – le terme formel pour elles est fonctions accrochées.

Il existe deux types de fonctions accrochées:

  1. Actions, aussi appelé fonctions d'action, qui s'accrochent aux hooks d'action de WordPress, et
  2. Filtres, aussi appelé fonctions de filtrage, qui s'accrochent aux crochets de filtre de WordPress.

Examinons l'un de chacun.

Exemple d'utilisation d'une fonction de filtre

Notre premier entrepreneur est un filtre ou fonction de filtrage. En d’autres termes, c’est une fonction qui conduit un crochet de filtre dans l’usine.

/ * Environnement: Nous sommes dans functions.php ou un fichier PHP dans un plugin * /

function wpshout_filter_example ($ title) 
retourne «Accroché:». $ title;

add_filter ('the_title', 'wpshout_filter_example');

Voici ce qu'il faut savoir sur le code ci-dessus:

  1. Notre filtre – c'est-à-dire le code qui se raccorde à notre hook de filtre – est en effet une fonction PHP, d'où le fonction .
  2. wpshout_filter_example est le Nom de la fonction de filtrage.
  3. ($ titre) est la fonction unique argument. C'est ce que l'usine WordPress (le cœur de WordPress lui-même) transmet à l'entrepreneur pour qu'il travaille.
  4. retourne 'Hooked:'. $ title; est le travail de la fonction. Il ajoute le mot «Hooked:» au titre qu'il a été adopté, et le rend au cœur de WordPress pour continuer à traiter régulièrement.
  5. revenir est très important: c'est comment la fonction redonne son travail au cœur de WordPress. Il est peut-être préférable de lire cette ligne de droite à gauche: elle dit: "Prenez le titre normal et ajoutez" Hooked: "avant, puis le renvoyer. »
  6. add_filter ('the_title', 'wpshout_filter_example'); est très important: c'est ainsi que vous ajoutez des fonctions de filtrage aux hooks de filtrage! Cela mérite sa propre liste à puces.

Maintenant, voici comment comprendre cette dernière ligne:

  1. add_filter (); est une fonction WordPress. Il dit: "Accrochez un nouveau filtre sur un crochet de filtre existant."
  2. 'le titre' est le nom du crochet de filtre que nous allons monter dans l’usine.
  3. "wpshout_filter_example" est le nom de l'entrepreneur: en d'autres termes, le nom du filtre que nous avons écrit, et que nous voulons accrocher au crochet du filtre (dans ce cas, le titre) que nous avons spécifié.

Alors le filtre wpshout_filter_example () s'accroche au crochet de filtre le titre. Quand c'est le cas, il ajoute simplement "Hooked:" au titre, et revenirest-il de retour. Ça a du sens?

Le résultat, sur un site en direct, ressemble à ceci:

Exemple d'utilisation d'une fonction d'action

Notre prochain entrepreneur est un action ou fonction d'action: une fonction qui monte un crochet d'action dans l'usine.

/ * Environnement: Nous sommes dans functions.php ou un fichier PHP dans un plugin * /

function wpshout_action_example () 
echo "WPShout était là.";

add_action ('wp_footer', 'wpshout_action_example');

Si vous avez compris l'exemple de filtre ci-dessus, vous comprendrez presque tout sur cet exemple d'action WordPress:

  1. fonction wpshout_action_example () signifie que cette action (ou fonction d'action) est nommée wpshout_action_example () et ne porte aucun argument.
  2. echo "WPShout était là."; est ce que la fonction Est-ce que. écho est une commande PHP dont nous parlerons sous peu.
  3. add_action ('wp_footer', 'wpshout_action_example'); est ce qui accroche le wpshout_action_example action à la wp_footer crochet d'action.

Comme nous l'avons noté, la principale différence par rapport à notre exemple de filtre est que la fonction hookée ne revenir n'importe quoi. Au lieu de cela, il échos (imprime) un message directement sur la page. Où ce message sera-t-il imprimé? Il s’imprimera au tout début de la section de pied de page, où que l’auteur du thème ait placé le wp_footer crochet d'action.

Cette différence: les actions peuvent faire presque tout, les filtres doivent revenir modifications de ce qui leur est donné – est la principale distinction entre les deux types de fonctions, qui sont par ailleurs assez similaires.

Sur un site en direct, notre action a ce résultat:

Ce que nous avons appris

Utilisations de WordPress actions et filtres pour étendre ce qu'il peut faire – des exemples stupides que nous avons montrés aujourd'hui, jusqu'aux plugins ultra-complexes comme WooCommerce. Nous avons appris à quoi servent les crochets, les actions et les filtres, ainsi que les principes de base de leur fonctionnement.

Pour résumer: les registres WordPress crochets d'action et de filtre à des endroits spécifiques du processus de génération de pages WordPress. Tout développeur peut alors écrire ses propres fonctions accrocher ces crochets d'action et de filtre. Les filtres (ou "fonctions de filtrage") modifient ce qui leur est donné et le restituent via un revenir; les actions (ou «fonctions d'action») peuvent écho texte, modifier les données et à peu près tout le reste, et vous n'avez pas besoin de revenir une valeur.

Le système de hooks WordPress est vraiment la porte d'entrée vers le développement WordPress à part entière, alors n'ayez pas peur de revenir sur le matériel, de l'expérimenter et de le personnaliser.

Résumé Limerick

Voici une idée pour les livres:
Le système (dans WordPress) de hooks.
Aux carrefours réguliers
Ils accrochent de nouvelles fonctions,
Ce qui change la façon dont le site agit et ressemble.

C'est l'heure du quiz!

  1. Un hook WordPress est un (n):
    1. Fonction contenant du code personnalisé
    2. Façon d'extraire du code personnalisé
    3. Fonction qui modifie le code personnalisé
  2. Ce qui suit est ne pas vrai des filtres WordPress:
    1. Ils reçoivent toujours des paramètres par leurs crochets
    2. On s'attend à ce qu'ils revenir une valeur
    3. Ils ne peuvent pas modifier les données du site ou écho Sortie HTML
  3. Pour supprimer automatiquement les grossièretés de l'affichage des commentaires des utilisateurs sur le site, un développeur utiliserait très probablement:
    1. Un filtre
    2. Une action
    3. Une méthodologie autre que les fonctions accrochées

Réponses et explications

  1. B. UNE fait référence à Actions et les filtres, appelés collectivement fonctions accrochées: les fonctions que les crochets tirent. C est surtout du charabia.
  2. C. Ensemble, UNE et B décrire comment les fonctions de filtrage reçoivent un élément de données (généralement une chaîne de sortie HTML) de leur hook de filtrage et doivent revenir une version modifiée de celui-ci. (De nombreuses fonctions d'action ne reçoivent rien de leur crochet d'action, et les actions ne revenir Cependant, la logique PHP des filtres et des actions peut tout faire, y compris modifier les données, écho baliser, consigner les erreurs ou même envoyer des e-mails, etc. C c'est faux.
  3. UNE. Le filtrage du contenu est une utilisation classique des filtres WordPress, comme son nom l'indique. La fonction de filtrage prendrait le contenu du commentaire brut, supprimerait ou modifierait les mots correspondant à un tableau de cibles, et revenir le contenu modifié au crochet de filtre, pour le traitement dans la section des commentaires de la page Web en cours de construction.

Si vous avez aimé ce chapitre sur les hooks WordPress, vous allez adorer notre guide complet sur le développement WordPress: Opérationnel! Il donne beaucoup plus de détails sur les profondeurs d'utilisation des crochets. Opérationnel couvre également tous les sujets clés du développement WordPress de manière claire, bien ordonnée et réfléchie. Vous apprendrez bien plus vite que vous ne le pourriez autrement – clairement, logiquement et sans dérive.

Soyez opérationnel maintenant

Et si vous souhaitez en savoir plus sur les hooks WordPress, vous pouvez regarder un webinaire vidéo gratuit dirigé par Fred sur le sujet.

Crédit image: Les Chatfield