Estoy tratando de averiguar si la misma función está vinculada a varias acciones, ¿puedo averiguar qué acción la llama?
Me gustaría enviar una llamada a la API cuando se crea y elimina un usuario; la funcionalidad en ambos casos es la misma, excepto que un punto de datos sería diferente en función de si se crea o elimina. No se siente bien hacer dos funciones idénticas con una sola diferencia, pero no estoy seguro de cómo puedo hacerlo.
¿Consejo?
esa es la funcion current_filter()
:
add_action( 'plugins_loaded', 'common_action' );
add_action( 'admin_init', 'common_action' );
function common_action()
{
switch( current_filter() )
{
case 'plugins_loaded':
// do_something( 'Plugins loaded' );
break;
case 'admin_init':
// do_another_thing( 'Admin init' );
break;
}
}
nombre_de_usuario_aleatorio
Tenía la misma pregunta: al ejecutar una función, ¿qué acción la activaba? La clave es $wp_current_filter
.
Ejemplo:
// Both of these will call the same function
do_action('wp', 'my_function');
do_action('init', 'my_function');
function my_function() {
// How do I know if this was 'init', 'wp', or some other hook?
// Global in the WordPress variable $wp_filter
global $wp_current_filter;
if ($wp_current_filter == 'wp' || in_array('wp', $wp_current_filter)) {
// Do my "wp" based stuff....
}
if ($wp_current_filter == 'init' || in_array('init', $wp_current_filter)) {
// Do my "init" based stuff....
}
}
Nota: Este es un pésimo ejemplo de caso de uso, ¡pero transmite los principios!
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.