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.




