¿Cómo y por qué puede un gancho llamarse a sí mismo sin causar recursión?

2

Al buscar en el código de ganchos de WP, a menudo veo ganchos que se llaman a sí mismos.

Por ejemplo, este fragmento de image_downsize ():

function image_downsize($id, $size = 'medium') {

    if ( !wp_attachment_is_image($id) )
       return false;

    if ( $out = apply_filters( 'image_downsize', false, $id, $size ) ) {
       return $out;
    }

¿Por qué esto no causa recursión?

Gracias

    
pregunta Chris Howard 20.06.2014 - 08:03

1 respuesta

5

Esto:

apply_filters( 'image_downsize', false, $id, $size )

no llama a la función image_downsize , aplica cualquier filtro enganchado a la etiqueta image_downsize , que sería una función diferente.

La única forma en que podría causar recursión es si el filtro que engancha a su vez se llame a esa función:

add_filter( 'image_downsize', 'wpd_downsize', 20, 3 );
function wpd_downsize( $return, $id, $size ){
    // collapse the universe
    return image_downsize( $id, $size );
}
    
respondido por el Milo 20.06.2014 - 08:32

Lea otras preguntas en las etiquetas