Categorías: Tutoriales

Diferencia entre wp_ajax y wp_ajax_nopriv

Cuando trabajas con AJAX en WordPress, si quieres hacerlo bien, debes hacer llamadas a admin-ajax.php y desde ahí gestionar las peticiones y sus salidas. Si conocéis esta técnica, conoceréis las funciones: wp_ajax_(acción) y wp_ajax_nopriv_(acción) (de la que no encuentro una referencia directa en el Codex, es raro).

La diferencia entre ambas no se suele conocer y lo malo es que si no lo sabes, recibirás todo el rato un cero (0) como salida de la petición del admin-ajax.php si no estás usándolo correctamente. La diferencia es la siguiente:

  • wp_ajax: se usa cuando el usuario tiene que haber iniciado sesión
  • wp_ajax_nopriv: cuando el usuario no tiene que haber iniciado sesión

La llamada sería así en cada caso:

add_action( 'wp_ajax_<acción>',  );
add_action( 'wp_ajax_nopriv_<acción>',  );

Un ejemplo práctico que acabo de hacer:

add_action( 'wp_ajax_actualizar_formulario', 'actualizar_formulario' );
add_action( 'wp_ajax_nopriv_envio_contacto', 'enviar_formulario_contacto' );

¿Manejáis AJAX con WordPress? ¿Tenéis dudas?

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace