wordpress: add_action: por qué el segundo parámetro es una matriz en lugar de un nombre de función

2 minutos de lectura

Estoy tratando de crear un complemento de wordpress, encontré un complemento que usa conceptos, mi pregunta es por qué el segundo parámetro en la función add_action es una matriz en lugar de un nombre de función

add_action(‘admin_menu’, array(&$this, ‘my_menu’));

my_menu es una función en la misma clase, por favor ayúdenme

Gracias

Debido a que el segundo argumento debe ser un llamar de vuelta. (y add_action usos internos call_user_func_array).

Para las funciones, podemos simplemente pasar su nombre como una cadena, pero no podemos hacer eso con métodos de objetos, ¿o sí?

Entonces, se pasa una matriz con 2 elementos, primero el objeto y segundo el método para llamar: –

array( $object, 'method' )

Ah, y puede eliminar de forma segura ese ‘&’ inútil, los días de PHP4 ahora se han ido.

  • Hola – Gracias por el consejo aquí. Estoy casi entendiendo, pero ¿puedes ayudarme con este ejemplo? No estoy seguro de cómo hacer referencia a $objeto cuando estamos trabajando con valor => tecla: add_action( ‘woo_main_before’, ‘woo_slider_biz’, 10, array( ‘slide_page’ => 394, ‘use_slide_page’ => true ) );

    – razón

    14/10/2014 a las 14:07


  • Tengo un problema constante en el que $object se comporta como si hubiera usado $this y aparece un error que indica que la clase add_action() que se usó no tiene el método enganchado. Incluso estoy creando un nuevo objeto y pasándolo en la línea antes de add_action pero aún no funciona.

    –Ryan Bayne

    27 de abril de 2016 a las 12:12

@Thomas John, tiene razón sobre el segundo argumento en add_action también en wordpress org no mencionó nada sobre esto, así que ahora, hágamelo saber, podemos pasar la matriz como segunda matriz de argumento ($ esto, ‘método’).

Descripción:
cuando el objeto crea una clase, el constructor llama automáticamente y su acción se realiza.

POR QUÉ SE REQUIERE
en wordpress cómo crear o inicializar la clase en el método add_action en resumen add_action haciendo referencia a una verificación de clase a continuación ejemplo

class Myclass{
 public function __construct() {


add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );

}
}

Hacer referencia a una clase usando add_action().

¿Ha sido útil esta solución?