add_action()
add_action() es una de las funciones más usadas en el desarrollo WordPress. Engancha tu función a un action hook para que se ejecute en el momento adecuado.
Sintaxis completa
add_action( $hook, $callback, $prioridad, $num_args );
Parámetros explicados uno a uno
$hook— nombre del action hook. Ej:'init','wp_footer','save_post'$callback— función a ejecutar. Puede ser string, array o closure$prioridad— orden de ejecución. Por defecto10. Menor = antes, mayor = después$num_args— cuántos argumentos acepta el callback. Por defecto1
Formas de pasar el callback
// 1. Nombre de función
add_action( 'init', 'mi_funcion' );
// 2. Método de clase instanciada
add_action( 'init', [ $objeto, 'mi_metodo' ] );
// 3. Método estático
add_action( 'init', [ 'Mi_Clase', 'mi_metodo_estatico' ] );
// 4. Closure (función anónima)
add_action( 'init', function() {
// código aquí
});
// ⚠ Las closures no se pueden eliminar después con remove_action()
Uso de prioridad
// Se ejecuta antes que la prioridad por defecto (10)
add_action( 'init', 'mi_funcion_primero', 5 );
// Se ejecuta después
add_action( 'init', 'mi_funcion_despues', 20 );
// Si dos callbacks tienen la misma prioridad,
// se ejecutan en el orden en que fueron registrados
Ejemplo con varios argumentos
// transition_post_status pasa 3 argumentos
add_action( 'transition_post_status', 'al_cambiar_estado', 10, 3 );
function al_cambiar_estado( $nuevo_estado, $estado_anterior, $post ) {
if ( $nuevo_estado === 'publish' && $estado_anterior !== 'publish' ) {
// el post acaba de publicarse
}
}
