J'ai cherché une explication appropriée de la différence entre add_filter()
et apply_filters()
ici mais je n'en ai pas trouvé.
Quelqu'un peut-il me dire quelles informations ou logique considérer avant d'utiliser add_filter
ou apply_filters
dans un contexte.
Cela rend impératif l'utilisation de l'un et non de l'autre?
Est-il correct d'
add_filter
ajouter simplement une fonction à la file d'attente de fonctions en attente d'exécution sur une variable et d'apply_filters
exécuter les fonctions dans l'ordre?Est-il également exact que
apply_filters
lorsqu'il est appelé avec un argument (le nom de la fonction à exécuter) exécutera cette fonction avant toutes les autres (si elles existent) dans la file d'attente?
plugins
customization
hanachi
la source
la source
Réponses:
La plupart des éléments suivants se trouvent dans le Codex :
apply_filters
Essentiellement:
vous utilisez
apply_filters
pour filtrer une donnée$value
- en ce qui concerne la valeur elle-même ainsi que les variables éventuellement fournies$var_1
via$var_n
.add_filter
Essentiellement:
vous utilisez
add_filter
pour accrocher une fonction personnalisée à l'action de filtrage donnée ($tag
), que vous avez peut-être généréeapply_filters
avant (ou c'était une action de filtrage intégrée ou découle d'un plugin / de votre thème).Voici donc un exemple fictif :
Maintenant, si nous appelons simplement notre fonction telle quelle, les initiales sont imprimées de gauche à droite, car c'est ce que nous avons défini comme comportement par défaut.
La deuxième fois, nous obtenons les initiales dans l'ordre inverse, car la fonction de filtrage
__return_true
, qui est liée à notre action de filtrage, revient toujoursTRUE
et fait donc sortir les initiales de droite à gauche.la source