¿Por qué, dónde y cuándo usar punteros de referencia en los filtros / ganchos?

4

¿Por qué, dónde y cuándo usar punteros de referencia en los filtros / ganchos? ¿Cuáles son los posibles contras de no usarlos cuando se sugiere o requiere? Solo busco una respuesta más detallada que la que proporciona el códice y quizás algunas aplicaciones reales de esto.

Por ejemplo: add_filter('some_wp_filter', array(&$this, 'my_function_to_filter');

    
pregunta hsatterwhite 02.09.2011 - 15:29

1 respuesta

6

El ejemplo que das se usa cuando estás creando un complemento / tema usando una clase.

En uso normal, su archivo functions.php simplemente tendría:

function my_function_to_filter( $args ) {
    // ... function stuff here
    return $args;
}
add_filter('some_wp_filter', 'my_function_to_filter');

Sin embargo, si estás usando una clase, las cosas se verían diferentes. Es probable que tengas un archivo my-class.php que contenga:

class My_Class {
    function my_function_to_filter( $args ) {
        // ... function stuff here
        return $args;
    }
    add_filter('some_wp_filter', array(&$this, 'my_function_to_filter'));
}

En este caso, &$this pasa una referencia a la clase para que el filtro llamado sea la función my_function_to_filter en la clase actual. También puede hacer esto con métodos estáticos si desea mantener todas sus llamadas de filtro en el mismo lugar.

Entonces, en my-class.php tendrías:

class My_Class {
    static function my_function_to_filter( $args ) {
        // ... function stuff here
        return $args;
    }
}

Y en functions.php o en tu archivo de complemento central tendrías:

add_filter('some_wp_filter', array('My_Class', 'my_function_to_filter'));
    
respondido por el EAMann 02.09.2011 - 17:39

Lea otras preguntas en las etiquetas