Fonctions WordPress add_filter vs add_action, les bases.

Publié: 2021-08-24

Divulgation : ce message contient des liens d'affiliation. Je peux recevoir une compensation lorsque vous cliquez sur des liens vers des produits dans cet article. Pour une explication de ma politique publicitaire, visitez cette page . Merci d'avoir lu!

Contenu

  • Quelles sont les fonctions WordPress add_filter vs add_action ?
  • Alors, qu'est-ce qu'un "hook" dans WordPress ?
  • Quelle est la différence entre les crochets, les filtres et les actions ?
  • Quelle est la différence entre do_action et add_action dans WordPress ?
  • Quelle est la différence entre les crochets d'action et les crochets de filtre ?
  • Que font les filtres dans WordPress ?
  • Que font les actions dans WordPress ?
  • Puis-je utiliser un add_action avant add_filter lors de la modification d'un plugin WordPress ?
  • Alors, quelle est la vraie différence entre les crochets add_filter et les crochets add_action dans WordPress ?

Quelles sont les fonctions WordPress add_filter vs add_action ?

Avez-vous déjà obtenu un plugin ou un thème qui serait parfait si vous pouviez y apporter une ou deux modifications ? Cependant, ces deux ajustements vous demanderont simplement d'ajouter un peu de code, peut-être même un shortcode.

Mais avant de le faire, vous devez comprendre les concepts de base de add_filter vs add_action, les différences et leur fonctionnement dans WordPress avant de transformer un plugin ou un thème presque parfaitement codé en un fouillis complet.

Un "add_action" dans WordPress est ce que vous utilisez pour créer un déclencheur "hook". Quand quelque chose arrive, alors faites autre chose.

Un "add_filter" est utilisé pour "accrocher" les données, c'est-à-dire changer/remplacer. Par exemple, là où il y a [some-code], remplacez-le par some-other-expanded-code.

Le "crochet" est une "fonction" ou une "méthode" pour un filtre ou une action spécifique. Plus d'informations sur les "crochets" ci-dessous.

WordPress propose des crochets de filtre pour permettre aux plugins de modifier divers types de données internes pendant son exécution. Un plugin peut modifier des données en liant un rappel à un hook de filtre. Lorsque le filtre est appliqué ultérieurement, chaque rappel lié est exécuté par ordre de priorité et a la possibilité de modifier une valeur en renvoyant une nouvelle valeur.

  • Les actions sont les fonctions PHP qui exécutent la sortie.
  • Les filtres sont les fonctions PHP qui renvoient la sortie.

Nous pouvons étendre n'importe quel plugin qui utilise les actions et les filtres sans modifier leur code. En ajoutant des filtres et des actions dans notre propre thème ou plugin. Voyons plus en détail comment cela fonctionne dans WordPress.

Alors, qu'est-ce qu'un "hook" dans WordPress ?

« Les crochets sont un moyen pour un morceau de code d'interagir/modifier un autre morceau de code à des endroits spécifiques et prédéfinis. Ils constituent la base de la façon dont les plugins et les thèmes interagissent avec WordPress Core, mais ils sont également largement utilisés par WordPress Core lui-même.

Il existe deux types de crochets : les actions et les filtres. Pour utiliser l'un ou l'autre, vous devez écrire une fonction personnalisée appelée " Callback ", puis l'enregistrer avec un hook WordPress pour une action ou un filtre spécifique. » Source : WordPress.org .

Quelle est la différence entre les crochets, les filtres et les actions ?

Comme mentionné ci-dessus, "hooks" est essentiellement le nom collectif des filtres et des actions. Les deux sont destinés à modifier le comportement normal des fonctions.

Parlant d'un point de vue programmatique, il n'y a pas de grande différence, comme vous pouvez le voir du fait que dans le code source de WordPress, ajouter une "action" revient à ajouter un "filtre".

La différence réside dans la façon dont ils sont utilisés. Vous utilisez une "action" pour modifier complètement le comportement d'une fonction ou pour ajouter quelque chose à une fonction existante.

Vous utilisez un "filtre" pour modifier le résultat d'une fonction ou d'une variable.

Quelle est la différence entre do_action et add_action dans WordPress ?

Un "do_action" enregistre un "hook d'action" tandis que "add_action" ajoute une fonction de rappel au hook enregistré.

Quelle est la différence entre les crochets d'action et les crochets de filtre ?

Crochets d'action

Les "Actions Hooks" sont destinées à être utilisées lorsque le noyau de WordPress ou un plugin ou un thème vous donne la possibilité d'insérer votre code à un certain point dans le leur pour exécuter une tâche ou une "action" spécifique.

Crochets de filtre

Les "Hooks de filtre" se comportent de manière très similaire aux "Hooks d'action", mais leur utilisation prévue est de recevoir une valeur et de renvoyer potentiellement une version modifiée de la valeur.

Un "Filter Hook" pourrait également être utilisé comme un "Action Hook", c'est-à-dire pour modifier une variable globale ou générer du HTML, en supposant que c'est ce que vous devez faire lorsque le hook est appelé.

Que font les filtres dans WordPress ?

Un « filtre » prend les informations qu'il reçoit, les modifie et les renvoie. En d'autres termes, il filtre quelque chose et le renvoie au crochet pour une utilisation ultérieure.

Par conséquent, un filtre est utilisé pour modifier quelque chose d'une manière spécifique afin que la modification soit ensuite utilisée par le code ultérieurement.

Que font les actions dans WordPress ?

Une "action" prend les informations qu'elle reçoit, exécute toutes les instructions qui lui sont données dans son codage, puis ne renvoie rien. Fondamentalement, il agit sur quelque chose, puis se termine, ne renvoyant rien au crochet appelant.

Une action interrompt le flux de code pour faire quelque chose, puis revient au flux normal sans rien modifier.

Ainsi, là où les «filtres» sont des ensembles de paramètres ou d'instructions, les «actions» sont l'exécution d'instructions.

Puis-je utiliser un add_action avant add_filter lors de la modification d'un plugin WordPress ?

Peu importe l'ordre dans lequel vous utilisez add_action() et add_filter().

Ce qui compte, c'est l'ordre dans lequel les do_action() et apply_filters() correspondants sont appelés.

Donc, si « apply_filters », par exemple, ('wp_insert_post_data') est exécuté avant le « do_action »('save_post'), cela ne fonctionnera pas. Vous devrez penser à une autre façon d'obtenir les résultats que vous recherchez.

Alors, quelle est la vraie différence entre les crochets add_filter et les crochets add_action dans WordPress ?

En réalité, les "Filter Hooks" sont à peu près un sur-ensemble des "Action Hooks". Les "Filter Hooks" peuvent faire tout ce que les "Action Hooks" peuvent faire et un peu plus. Bien que le développeur n'ait pas la responsabilité de renvoyer une valeur avec un "Action Hook" qu'il fait avec un "Filter Hook".

Les "crochets de filtre" définissent essentiellement les paramètres d'une tâche, tandis que les "crochets d'action" exécutent des tâches. Pour plus d'informations sur les différences entre les crochets "add_filter" et les crochets "add_action", consultez cette documentation WordPress officielle dans la section développeur sur WordPress.org.