114 votes

Que fait réellement apply_filters(...) dans WordPress ?

J'essaie de comprendre certaines des fonctions de WordPress, mais je n'arrive pas à me faire une idée de ce qui apply_filters(...) le fait réellement.

Quelqu'un peut-il m'éclairer à l'aide de quelques exemples ?

104voto

Richard M Points 8333

apply_filters($tag, $value) transmet l'argument 'valeur' à chacune des fonctions 'hooked' (en utilisant la fonction add_filter ) dans le filtre "tag" spécifié. Chaque fonction effectue un traitement sur la valeur et renvoie une valeur modifiée qui sera transmise à la fonction suivante de la séquence.

Par exemple, par défaut (dans Wordpress 2.9), l'option the_content fait passer la valeur par la séquence de fonctions suivante :

  • wptexturize
  • convertir_smilies
  • convertir_chars
  • wpautop
  • shortcode_unautop
  • prepend_attachment
  • do_shortcode

30voto

kaiser Points 4137

réponse tardive

Brève explication

apply_filters() interagit avec le global $wp_filters tableau. En fait, il vérifie simplement dans le tableau si le filtre (ou le hook) actuel a une action (ou une fonction de rappel) attachée et l'appelle.

Longue explication

Lorsque vous attachez un callback/action à un filtre ou à un hook, il suffit d'ajouter le nom du callback au tableau global des filtres. Lorsque, dans le code (par exemple, un modèle, un fichier de base ou un plugin), un appel à la fonction do_action() o apply_filters() se produit, alors WordPress cherche dans le tableau et appelle le callback. La seule chose plus spéciale avec les filtres qu'avec les hooks est qu'ils renvoient la valeur (pour un traitement ultérieur) au lieu de simplement lancer le callback. Donc, en résumé : Les hooks servent à insérer les données, tandis que les filtres servent à modifier données.

18voto

Voici ce que j'en déduis, en tenant compte de la réponse la plus populaire et des ressources supplémentaires :

  • $tag semble être un synonyme du nom du hook. (Ce n'est pas particulièrement intuitif pour moi).
  • the_content est un exemple de hook, de type "filtre".
  • Le crochet the_content est composé de plusieurs filtres.
  • Les filtres modifient les données. En fait, ils filtrent la base de données, modifiant les données avant que les utilisateurs ne les voient.
  • Une utilisation courante de apply_filters(), par exemple, consiste à appliquer les filtres the_content à $content. Dans ce cas, les doubles retours seront convertis en <p> les smileys seront convertis en icônes, etc.
  • "the_content" est un hook, tandis que "the_content()" est une fonction.

5voto

Ajay Points 66

Wptuts+ a une explication détaillée sur le fonctionnement des filtres et des actions.

http://wp.tutsplus.com/tutorials/plugins/writing-extensible-plugins-with-actions-and-filters/

1voto

Steve Points 1

Dans les termes les plus basiques, apply_filters est utilisé pour initialiser un hook de filtre... add_filter assigne une nouvelle fonction aux hooks qui ont déjà été créés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X