Conditionnel, if ( isset($wp_filter['all']) ) {
vous pouvez trouver directement dans ces fonctions de création de hook:
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
La différence entre ceux-ci réside dans le nombre d'arguments envoyés. Soit nous avons besoin de plusieurs arguments, ref_array
soit d'un seul argument. L'autre différence "action vs filtre" est simple, l'action peut faire n'importe quelle fonction / action, et le nom du filtre est généralement réservé aux fonctions qui prennent des données de chaîne et retournent ces données filtrées.
OK, voici comment créer des crochets. Et les hooks ont des noms, et vous pouvez pêcher plusieurs noms de fonction sur le même nom de hook (lire: tag).
Mais une fois que vous avez défini toutes les fonctions associées à des hooks spécifiques, vous devez stocker quelque part tous les noms de hook et les noms de fonction associés. C'est pourquoi nous utilisons le global $wp_filter
dans WordPress. Si vous produisez cette variable, vous obtiendrez quelque chose comme ...
Array
(
[pre_term_name] => Array
(
[10] => Array
(
[sanitize_text_field] => Array
(
[function] => sanitize_text_field
[accepted_args] => 1
)
[wp_filter_kses] => Array
(
[function] => wp_filter_kses
[accepted_args] => 1
)
)
[30] => Array
(
[_wp_specialchars] => Array
(
[function] => _wp_specialchars
[accepted_args] => 1
)
)
)
Eh bien, ne discutons pas du nom de cette variable. Personnellement, je dirais que c'est différent, probable $wp_hooks
puisque ce nom n'est pas pris. Cependant, si nous revenons dans l'histoire, nous trouverons que do_action
c'est depuis @since 1.2.0
et apply_filters
est @since 0.71
(publié le 9 juin 2003). Cela vous donne une assez bonne explication de la raison de son appel $wp_filter
. C'est probablement parce que les filtres ont été introduits en premier dans WordPress. Plus tard, ils ont introduit des actions.
S'appuyant simplement sur les propos de @TheDeadMedic ...
add_action ('all', 'any') signifiera tout ce qui se déclenche pour chaque do_action, quel que soit le nom du hook.
J'ai soulevé la question pourquoi avons-nous besoin $wp_filter['all']
? Juste quelques exemples. Introspection, tests et probablement plus de fonctionnalités internes du système dans les futures versions de WordPress.