¿Qué es "todo" en isset ($ wp_filter ['all'])


10

Soy un novato en WordPress. Estoy tratando de entender cómo genera las páginas XHTML. Supongo que es la función de do_action( 'hook-name' ), pero estoy atascado con la comprensión de la instrucción isset( $wp_filter['all] )al leer la función do_action porque no entiendo cuál es el significado de la palabra all.

¿Es una función PHP o una WordPress?

Respuestas:


9

alles solo una cadena que los desarrolladores de WordPress eligieron para comportarse de manera diferente a cualquier otro gancho. Cuando se conectaall , su devolución de llamada se activará para todos los demás ganchos .

No pasaría demasiado tiempo mirando la fuente de do_action, solo sé que:

  1. add_action( 'x', 'whatever' )significará whateverincendios parado_action( 'x' )
  2. add_action( 'all', 'whatever' )significará whateverincendios para todos do_action , independientemente del nombre del gancho.

5

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_arrayo 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).

ingrese la descripción de la imagen aquí

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_filteren 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_hooksya que este nombre no se toma. Sin embargo, si volvemos a la historia, encontraremos do_actiondesde entonces @since 1.2.0y apply_filterses @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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.