2012-01-19 20 views
8

Estoy intentando eliminar una acción que un complemento registra en un archivo functions.php separado, pero la sintaxis me está abrumando. El plug-in (no puedo copiar/pegar - Plugin comercial) infiere a la add_action así:Cómo eliminar una acción agregada a través de una clase

class Plugin_Class{ 

    function add_actions(){ 
    add_action('tag', array(&$this, 'function_to_remove'), 10); 
    } 

    function_to_remove(){ 
    global $wp; 
    // Code here 
    } 
} 

Lo que más me confunde con &$this. Yo sé que esto se refiere a la instancia de la clase, pero sobre la base de mi investigación debe ser eliminado de esta manera:

Need help with remove_action()

Simplemente no sé cómo llegar a la sintaxis de mi situación. ¿Por qué definir la variable global? ¿Tendría que hacer eso en mi caso? Supongo que la matriz de widgets proviene del código central de WP, pero estoy confundido sobre cómo debo implementar esto en mi caso, que parece ser mucho más simple. Lo siento si esto es remedial.

Gracias por cualquier ayuda con anticipación.

+0

Más lecturas: http://wordpress.org/support/topic/remove_action-problem-when-function-is-within-class – Steve

+0

Estoy confundido cuando dice: "Digamos que tenemos un global". ¿Entonces necesito encontrar un global definido en la clase? – Steve

+1

Ahora entiendo que el global necesita establecerse en la variable que se asignó cuando se creó una instancia de la clase. Probando eso pero no trabajando. http://wordpress.stackexchange.com/questions/36013/remove-action-or-remove-filter-with-external-classes – Steve

Respuesta

1

El & $ esto crea una referencia en lugar de una copia. De esta forma, cuando acceda a esa variable más adelante, realmente tendrá acceso a este objeto y no a una copia.

http://www.php.net/manual/en/language.references.whatdo.php

Véase el párrafo sobre la matriz "no asignar exactamente por referencia, pero equivalente."

Cuestiones relacionadas