
Cómo usar HTTP Requests en WordPress: Guía práctica con ejemplos
Cuando desarrollamos plugins o temas para WordPress, es común tener que conectarse a servicios externos para obtener o enviar información. Esto se hace mediante HTTP requests o solicitudes HTTP. En este artículo te explicamos qué son, cómo funcionan en WordPress y te mostramos ejemplos prácticos para que los apliques en tus proyectos.
¿Qué es una HTTP request?
Una HTTP request es una petición que hace tu sitio web a otro servidor. Por ejemplo, si tu plugin necesita mostrar el clima, podría enviar una solicitud a una API meteorológica como OpenWeatherMap y obtener la respuesta en formato JSON.
En WordPress, esto se puede hacer fácilmente usando funciones como wp_remote_get()
y wp_remote_post()
.
¿Por qué usar las funciones nativas de WordPress?
Aunque podrías usar cURL o file_get_contents()
, WordPress ya incluye su propio sistema HTTP que es:
- Compatible con varios entornos (cURL, fopen, fsockopen, etc.).
- Seguro (maneja errores, redirecciones, SSL, etc.).
- Fácil de usar.
Cómo hacer un GET request en WordPress
El método GET se usa para obtener información de un servidor externo. Por ejemplo, obtener datos de una API.
Ejemplo:
<?php function getWeatherData() { $apiUrl = 'https://api.openweathermap.org/data/2.5/weather?q=Lima,PE&appid=TU_API_KEY&units=metric'; $response = wp_remote_get( $apiUrl ); if ( is_wp_error( $response ) ) { return 'Error al obtener datos del clima.'; } $body = wp_remote_retrieve_body( $response ); $data = json_decode( $body, true ); if ( isset( $data['main']['temp'] ) ) { return 'Temperatura actual: ' . $data['main']['temp'] . '°C'; } return 'Datos del clima no disponibles.'; }
Puedes usar esta función en un shortcode o hook para mostrar el clima en tu sitio.
Cómo hacer un POST request en WordPress
El método POST se usa para enviar datos a un servidor, por ejemplo, para enviar formularios o crear un recurso en una API.
Ejemplo:
<?php function sendContactData() { $apiUrl = 'https://ejemplo.com/api/contacto'; $payload = [ 'name' => 'Juan Pérez', 'email' => 'juan@correo.com', 'message' => 'Hola, quiero más información.' ]; $response = wp_remote_post( $apiUrl, [ 'body' => json_encode( $payload ), 'headers' => [ 'Content-Type' => 'application/json', ], ]); if ( is_wp_error( $response ) ) { return 'No se pudo enviar el mensaje.'; } $body = wp_remote_retrieve_body( $response ); return 'Respuesta del servidor: ' . $body; }
Cómo manejar errores correctamente
Es muy importante validar la respuesta con is_wp_error()
antes de procesarla, para evitar que tu plugin falle si hay problemas de red o con el servidor remoto.
También puedes obtener más detalles del error:
<?php if ( is_wp_error( $response ) ) { $errorMessage = $response->get_error_message(); return 'Error: ' . $errorMessage; }
Agregar autenticación (Bearer Token)
Si tu API requiere autenticación, puedes agregar un encabezado personalizado:
<?php function getPrivateData() { $apiUrl = 'https://api.privada.com/datos'; $token = 'TU_TOKEN_AQUI'; $response = wp_remote_get( $apiUrl, [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, ], ]); if ( is_wp_error( $response ) ) { return 'Error al acceder a los datos.'; } return wp_remote_retrieve_body( $response ); }
¿Dónde usar estas funciones?
Puedes usar wp_remote_get()
y wp_remote_post()
en:
- Shortcodes personalizados.
- Funciones de tus plugins.
- Hooks como
wp_ajax_
orest_api_init
. - Cron jobs (
wp_schedule_event()
).
Las HTTP requests te permiten integrar tu sitio WordPress con otros servicios fácilmente. Gracias a las funciones nativas de WordPress, no necesitas depender de bibliotecas externas ni complicarte con cURL.
Ya sea que quieras consumir una API, enviar datos o autenticar usuarios, wp_remote_get()
y wp_remote_post()
te dan las herramientas necesarias para hacerlo de forma segura y sencilla.