Comment ils fonctionnent – WPShout

By | décembre 10, 2019

Expert WordPress

Cet article présente l'un des sujets les plus importants du développement WordPress: les crochets WordPress, y compris les crochets d'action et les crochets de filtre. Ils sont au cœur non seulement du fonctionnement des plugins WordPress, mais de presque tout le code de l'écosystème WordPress. J'entends par là que la plupart des thèmes WordPress les utilisent également. Tout comme le «noyau WordPress» lui-même. Les crochets WordPress sont en quelque sorte le sujet * à savoir * dans le développement WordPress.

Nous avons emballé cette explication des crochets WordPress avec une vidéo de présentation utile, des points clés, une infographie détaillée, un quiz et même un limerick résumé (!). C'est parce que ce n'est pas seulement un de nos articles normaux: c'est un exemple de chapitre de notre cours "apprendre le développement WordPress" Opérationnel, maintenant dans sa 3e édition révisée et étendue.

Si vous aimez cet article, assurez-vous de vérifier Opérationnel. Il y a environ 40 autres chapitres (ou «articles») dont celui-ci est issu. Nous le soutenons comme le meilleur guide pour le développement de WordPress.

La meilleure façon d'apprendre le développement WordPress

Opérationnel est notre cours complet "apprendre le développement WordPress". Maintenant 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.

Voici ce qu’ils ont à dire:

«Je pense que toute personne intéressée à apprendre le développement WordPress A BESOIN de ce cours. Regarder les vidéos était comme un tas de lumières allumées. »-Jason, développeur WordPress

"Les autres cours que j'ai essayés manquent presque toujours d'explications claires sur la raison pour laquelle WordPress fait les choses d'une certaine manière, ou sur la façon dont les choses fonctionnent ensemble. Up and Running fait tout cela, et tout est expliqué clairement et dans un langage facile à comprendre. »-Caroline, pigiste WordPress


Points clés sur WP Hooks:

  • 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 pendant 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: actes et filtres.
  • Il existe deux types de crochets: crochets d'action et crochets de filtre. L'action accroche les actions «accrocher» et les filtres accrochent les filtres «accrochent».
  • 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 pour WordPress à utiliser dans son traitement régulier.
  • Les actions, en revanche, n'ont pas besoin de revenir une valeur, et ne reçoivent souvent pas de paramètres spécifiques par leurs crochets 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 façon la plus courante d'interagir avec WordPress. Et au fil du temps, c'est également devenu l'une de nos activités préférées dans WordPress.

Terminologie – Crochets vs actions vs filtres

En particulier dans ce cas, la compréhension des 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ésinvolte et incohérente.

Les définitions que nous utilisons dans ce chapitre sont les définitions 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. Donc, 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.

Lien entre le crochet, l'action et le 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 crochet 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'à d'autres développeurs la possibilité d'ajouter des fonctionnalités supplémentaires à cet emplacement.
  • Fonctions accrochées sont des fonctions PHP personnalisées auxquelles nous pouvons «accrocher» WordPress, aux emplacements spécifiés par ses crochets.
  • Il existe deux types de fonctions accrochées: actes et filtres. Les filtres modifient la sortie existante, tandis que les actions peuvent effectuer n'importe quel type de fonctionnalité personnalisée.
  • Crochets viennent en deux types—crochets d'action et crochets de filtre—En fonction du type de fonction accrochée qu'ils acceptent.

Bien jusqu'à présent? Ne vous inquiétez pas de toute façon, et continuons. (À la fin, vous voudrez peut-être revenir et voir si ce qui précède est plus logique.)

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

guide visuel des crochets wordpress

N'essayez pas d'aller trop loin pour l'instant – pour l'instant, comprenez simplement que «les actions se connectent aux crochets d'action et les filtres se connectent aux crochets de filtre».

Crochets WordPress: faire entrer des entrepreneurs extérieurs dans l'usine WordPress

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

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

N'oubliez pas que WordPress fait appel à entrepreneurs extérieurs pour 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 sous-traitants viennent de deux endroits:

  1. Plugins
  2. le functions.php fichier à l'intérieur du thème parent ou enfant

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

Les crochets tirent le code extérieur, de façons et à des endroits spécifiés.

Crochets—Les deux crochets d'action et les crochets de filtre — voilà comment WordPress invite ces entrepreneurs extérieurs. En d'autres termes, les crochets 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 montent, 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 pour que les entrepreneurs puissent les monter, et ils le font dans un ordre spécifique. le wp_head le crochet sort dans le hall et revient juste avant se termine, le wp_footer le crochet se déplace dans le hall et revient juste avant se termine, etc. L'entrepreneur monte donc toujours son crochet directement sur la partie active de l'usine qui doit être travaillée.

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

Si l'entrepreneur n'a pas monté le bon crochet, il ne pourrait pas arriver là où il va dans l'usine. Les crochets sont ce qui «invite» à l'extérieur du code (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 pour comprendre les crochets, les actions et les filtres WordPress. L'autre partie est un peu plus spécifique: 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 crochets de filtre.

Crochets d'action

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

Lorsque les entrepreneurs 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 enregistrer une erreur ou même envoyer un e-mail.

Crochets de filtre

Crochets de filtre travailler un peu différemment. Les entrepreneurs qui montent sur des crochets d'action peuvent faire ce qu'ils veulent et n'ont aucune responsabilité envers quiconque. Mais les entrepreneurs qui montent sur des crochets de filtre s’insèrent dans le processus normal des travailleurs: on leur donne quelque chose à gérer – disons un bloc de texte – et ils doivent donner ce même bloc de texte (légèrement modifié, probablement) retour au travailleur régulier, via un PHP revenir déclaration.

Donc, un entrepreneur utilisant un crochet de filtre ne fait généralement pas ce qu'il veut; il travaille avec le travail qu'il a donné dans sa section de l'usine. "Cette section fonctionne sur le titre du message", pourrait dire le responsable de la section. "Faites tout 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 Sont Ces entrepreneurs?

Nos «sous-traitants» sont des fonctions PHP personnalisées que nous (ou quiconque) pouvons écrire.

J'espère que nous avons du sens jusqu'à présent; maintenant, nous allons devenir un peu plus techniques afin que vous puissiez réellement commencer à écrire ces choses.

Les sous-traitants – à la fois ceux accrochés aux crochets d'action et ceux 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 arrivent dans WordPress en s'attachant aux crochets WordPress – c'est-à-dire, être «accrochés» de l'extérieur – le terme formel pour eux est fonctions accrochées.

Il existe deux types de fonctions liées:

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

Regardons l'un de chacun.

Exemple d'utilisation d'une fonction de filtre

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

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

fonction wpshout_filter_example ($ title) 
retourner 'Hooked:'. $ title;

add_filter ('the_title', 'wpshout_filter_example');

Voici ce que vous devez savoir sur le code ci-dessus:

  1. Notre filtre, c'est-à-dire le code qui se connecte à notre filtre, est en effet une fonction PHP, d'où une fonction .
  2. wpshout_filter_example est le prénom de la fonction de filtre.
  3. ($ title) est la fonction unique de la fonction argument. C’est ce que l’usine WordPress (le noyau WordPress lui-même) transmet à l’entrepreneur pour y travailler.
  4. return 'Hooked:'. $ title; est le travail de la fonction. Il ajoute le mot «Hooked:» au titre qu'il a été transmis et le redonne au noyau WordPress pour continuer à le traiter régulièrement.
  5. revenir est très important: c'est Comment la fonction redonne son travail au cœur de WordPress. Il vaut peut-être mieux lire cette ligne de droite à gauche: elle dit: "Prenez le titre normal et ajoutez" Crochet: "avant, puis le repasser. "
  6. add_filter ('the_title', 'wpshout_filter_example'); est très important: c'est comme ça que vous ajoutez des fonctions de filtrage pour filtrer les crochets! 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 du 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. Dans ce cas, il ajoute simplement «Hooked:» au titre, et reveniril est 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 * /

fonction 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à."; c'est quoi la fonction Est-ce que. écho est une commande PHP dont nous discuterons sous peu.
  3. add_action ('wp_footer', 'wpshout_action_example'); est ce qui accroche le wpshout_action_example action au wp_footer crochet d'action.

Comme nous l'avons noté, la principale différence avec 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, là où l’auteur du thème a 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

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

Pour résumer: les registres WordPress crochets action et filtre à des endroits spécifiques du processus de génération de page 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 rendent via un revenir; actions (ou «fonctions d’action») peuvent écho texte, modifier les données, et à peu près tout le reste, et n'ont pas besoin de revenir une valeur.

Le système de crochets WordPress est vraiment la passerelle vers un développement WordPress à part entière, alors n'ayez pas peur de revenir sur le matériel, de l'expérimenter et de vous l'approprier.

Résumé Limerick

Voici une idée pour les livres:
Le système (dans WordPress) de crochets.
Aux jonctions régulières
Ils accrochent de nouvelles fonctions,
Qui changent la façon dont le site agit et ressemble.

Quiz Time!

  1. Un hook WordPress est un (n):
    1. Fonction contenant du code personnalisé
    2. Manière 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 sont toujours passés des paramètres par leurs crochets
    2. Ils devraient revenir une valeur
    3. Ils ne peuvent pas modifier les données du site ou écho Sortie HTML
  3. Pour supprimer automatiquement les blasphèmes de l'affichage des commentaires des utilisateurs sur le site, un développeur utilisera 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 à actes et filtres, appelé collectivement fonctions accrochées: les fonctions qui accrochent les crochets. C est principalement 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 crochet 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 une valeur.) Cependant, la logique PHP des filtres et des actions peut tout faire, y compris modifier les données, écho balisage, 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 brut des commentaires, 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! Cela donne plus de détails sur les profondeurs de l'utilisation des crochets, pour ceux qui ont trouvé cela tout à fait compréhensible. Et si vous avez trouvé cela un peu écrasant, Up and Running couvre également toutes les bases de manière claire, bien ordonnée et réfléchie. Quoi qu'il en soit, vous apprendrez beaucoup plus rapidement que vous ne le pouvez et sans trop vous laisser distraire.

Soyez opérationnel maintenant

Crédit d'image: Les Chatfield