Condicional if ( isset($wp_filter['all']) ) {
que puede encontrar en estas funciones de creación de ganchos:
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
La diferencia entre estos está en el número de argumentos enviados. O necesitamos múltiples argumentos, por lo tanto, ref_array
o un solo argumento. La otra diferencia "acción frente a filtro" es simple, la acción puede realizar cualquier función / acción, y el nombre del filtro generalmente está reservado para funciones que toman datos de cadena y devuelven esos datos filtrados.
OK, así es como creas ganchos. Y los ganchos tienen nombres, y puede pescar múltiples nombres de funciones en el mismo nombre de gancho (leer: etiqueta).
Pero una vez que defina todas las funciones asociadas con ganchos específicos, debe almacenar en algún lugar todos los nombres de ganchos y nombres de funciones asociadas. Es por eso que tenemos global $wp_filter
en WordPress. Si saca esa variable obtendrá algo como ...
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
)
)
)
Bueno, no discutamos sobre el nombre de esta variable. Personalmente, lo llamaría diferente, probable $wp_hooks
ya que este nombre no se toma. Sin embargo, si volvemos a la historia, encontraremos do_action
desde entonces @since 1.2.0
y apply_filters
es @since 0.71
(lanzado el 9 de junio de 2003). Eso te da una muy buena explicación de por qué se llama $wp_filter
. Es más probable porque los filtros se introdujeron primero en WordPress. Más tarde introdujeron acciones.
Basándome en ser dicho por @TheDeadMedic ...
add_action ('all', 'whatever') significará lo que se dispare por cada do_action, independientemente del nombre del gancho.
Planteé la pregunta ¿por qué necesitamos $wp_filter['all']
? Solo algunos ejemplos. Introspección, pruebas y probablemente más características internas del sistema en las futuras versiones de WordPress.