Estoy bastante perplejo con este. Estoy usando add_action dentro de mi clase de complemento para hacer ciertas cosas: agregar scripts y estilos a la cabeza, wp_ajax, etc. Aquí están las acciones, en la construcción __:
function __construct(){
add_action('admin_menu', array($this, 'sph_admin_menu'));
add_action('sph_header', array($this, 'sph_callback'));
add_action('sph_header_items', array($this, 'sph_default_menu'), 1);
add_action('sph_header_items', array($this, 'sph_searchform'), 2);
add_action('sph_header_items', array($this, 'sph_social'), 3);
//Below here they don't work. I have to call these outside of the class (but I need class variables within the functions)
add_action('wp_print_styles', array(&$this, 'sph_stylesheets'));
add_action('wp_print_scripts', array(&$this, 'sph_scripts'));
add_action( 'wp_ajax_nopriv_add_to_list', array(&$this, 'le_add_to_list'));
add_action( 'wp_ajax_add_to_list', array(&$this, 'le_add_to_list'));
add_action('init', array(&$this, 'register_menu'));
}
¿Alguien ha encontrado algo como esto? Realmente me gustaría saber cómo usar dichos ganchos desde dentro de una clase, ¡es muy complicado tener acciones fuera de la clase!
$my_plugin = new MYClass();
ya que he usado estos mismos ganchos desde dentro de una clase sin problemas.public
visibilidad.Respuestas:
A veces, ciertos ganchos necesitan ser disparados en ciertos momentos. Ejemplo, algunos ganchos necesitan ser disparados en init .
Agregue esto a su
__construct()
A continuación, agregue esta función, que contendrá todos los ganchos que deben activarse en init .
Otro ejemplo:
Querrá leer sobre los ganchos y cuándo se disparan. Para que sepa cuándo y dónde activar sus acciones. Complemento API / Referencia de acción
fuente
Esta es una pregunta bastante antigua, pero en caso de que alguien esté buscando una respuesta, tuve un problema similar. Tuve una clase
Plugin :: init () nunca fue llamado. Entonces me di cuenta de mi error. Para crear una instancia de la clase, estaba haciendo esto:
Para solucionarlo, acabo de cambiar el código de instanciación a:
La otra opción sería usar un gancho diferente en el constructor:
O un gancho anterior en la instanciación:
fuente