API REST y meta de eventos
Los eventos se exponen a través de la API REST de WordPress, junto con un conjunto definido de meta.
Endpoints
| Recurso | Base |
|---|---|
| Eventos | event |
| Tipos de evento | event_types |
| Categorías | event_categories |
| Etiquetas | El endpoint central de etiquetas, ya que post_tag se comparte |
Viven bajo el espacio de nombres estándar de la API REST de WordPress y se comportan como cualquier otro tipo de contenido y taxonomía registrados: se aplican los parámetros de colección habituales, el orden y la paginación.
Meta expuesta en un evento
Registrada para REST:
| Clave | Tipo |
|---|---|
_thumbnail_id |
string |
event_start_date |
string |
event_end_date |
string |
event_start_datetime |
string |
event_end_datetime |
string |
hide_event_date |
string |
event_all_day |
string |
attending_users |
array de IDs de usuario enteros |
pom |
object |
El objeto pom expone los propios valores del panel del evento, incluidas las fechas y horas de inicio y fin, el formato de fecha, el lugar, el texto introductorio, el organizador, las etiquetas de los botones, el hashtag, el número de contacto, los enlaces adicionales, los campos de formulario opcionales y el espacio disponible. Su propiedad optional_form_fields es un array de identificadores de campo de tipo string.
Lectura de eventos
GET /wp-json/wp/v2/event?per_page=20&orderby=date
Para reproducir el orden propio del sitio y el filtro de próximos eventos, consulta sobre los valores de fecha derivados en lugar de la fecha del contenido — consulta Recetas de consulta de eventos. La colección REST no aplica por ti el filtro de próximos eventos del plugin.
Dos representaciones de fecha
event_start_date y event_end_date son valores Y-m-d normalizados, adecuados para comparar y ordenar. event_start_datetime y event_end_datetime son los valores editables, adecuados para mostrar.
Los consumidores deberían leer las fechas y horas para la presentación y las fechas para la lógica.
Datos de asistentes a través de REST
attending_users se expone. event_assistants — el mapa que contiene direcciones de correo electrónico, teléfonos, comentarios y países — no está registrado para REST.
Es deliberado. No lo añadas a una respuesta REST pública: se trata de datos personales, incluidos comentarios de texto libre que con frecuencia contienen información de salud y accesibilidad.
Si una integración interna realmente necesita los datos de los asistentes, crea tu propio endpoint autenticado con una comprobación explícita de capacidades y trata la carga útil como confidencial. Consulta Escapado, saneamiento y capacidades.
Se aplica la restricción del tema
El tipo de contenido solo se registra en el tema POM. En otro tema, los endpoints REST de eventos no existen y las solicitudes devuelven una respuesta de no encontrado.
Un consumidor debería gestionar ese caso en lugar de asumir que el endpoint es permanente.
Escritura a través de REST
Se aplican las reglas de permisos estándar: la escritura requiere un usuario autenticado con la capacidad de editar ese contenido.
Dos advertencias específicas de los eventos:
- Escribir las fechas y horas a través de REST no recalcula los valores derivados
event_start_dateyevent_end_date. Escribe ambos, o el evento mostrará una cosa y se consultará como otra. - Escribir
pomreemplaza el objeto. Léelo, modifica la clave que necesites y vuelve a escribir el objeto completo.
Proteger a un consumidor
$response = wp_remote_get( $site . '/wp-json/wp/v2/event?per_page=10' );
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
return; // Events may not be registered on this site.
}