Condizionale if ( isset($wp_filter['all']) ) {
puoi trovare proprio in queste funzioni di creazione hook:
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
La differenza tra questi è nel numero di argomenti inviati. O abbiamo bisogno di più argomenti, quindi ref_array
o singolo argomento. L'altra differenza "azione vs. filtro" è semplice, l'azione può svolgere qualsiasi funzione / azione e il nome del filtro è in genere riservato alle funzioni che accettano dati stringa e restituiscono tali dati filtrati.
OK, ecco come si creano gli hook. E gli hook hanno nomi e puoi pescare più nomi di funzioni sullo stesso hook (leggi: tag).
Ma una volta definite tutte le funzioni associate a hook specifici, è necessario memorizzare da qualche parte tutti i nomi hook e nomi funzione associati. Questo è il motivo per cui abbiamo il global $wp_filter
WordPress. Se emetti quella variabile otterrai qualcosa come ...
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
)
)
)
Bene, non discutiamo sul nome di questa variabile. Personalmente, lo definirei diverso, probabilmente $wp_hooks
poiché questo nome non è preso. Tuttavia, se torniamo alla storia, scopriremo che do_action
è da @since 1.2.0
ed apply_filters
è @since 0.71
(rilasciato il 9 giugno 2003.). Questo ti dà una buona spiegazione del perché si chiama $wp_filter
. È molto probabile perché i filtri sono stati introdotti prima in WordPress. Successivamente hanno introdotto azioni.
Basandomi solo su quanto detto da @TheDeadMedic ...
add_action ('all', 'qualunque') significherà qualunque fuoco per ogni do_action, indipendentemente dal nome dell'hook.
Ho sollevato la domanda perché ne abbiamo bisogno $wp_filter['all']
? Solo alcuni esempi. Introspezione, test e probabilmente altre funzionalità interne del sistema nelle future versioni di WordPress.