GitHub|Since 2007
Paso 3

Verificación de la API REST de WordPress

Compruebe si la API REST de su sitio WordPress está activa, conozca los principales endpoints y configure los ajustes de seguridad.

10 min

¿Qué es la API REST?

La API REST permite que WordPress proporcione su contenido (entradas, páginas, categorías, medios) en formato JSON al mundo exterior. En una arquitectura headless, Next.js utiliza esta API para recuperar el contenido.

Compruebe si la API está activa

Abra la siguiente dirección en su navegador (sustitúyala por la URL de su propio sitio):

https://ejemplo.com/wp-json/wp/v2/posts

Si ve sus entradas en formato JSON, ¡la API está activa! 🎉

Endpoints comunes

La API REST de WordPress ofrece numerosos endpoints:

EndpointDescripción
/wp-json/wp/v2/postsEntradas del blog
/wp-json/wp/v2/pagesPáginas
/wp-json/wp/v2/categoriesCategorías
/wp-json/wp/v2/tagsEtiquetas
/wp-json/wp/v2/mediaImágenes y medios
/wp-json/wp/v2/usersAutores
/wp-json/wp/v2/commentsComentarios

Parámetros importantes

# Obtener las primeras 10 entradas
/wp-json/wp/v2/posts?per_page=10

# Con datos embebidos (imágenes, autores)
/wp-json/wp/v2/posts?_embed

# Filtrar entradas por categoría
/wp-json/wp/v2/posts?categories=5

# Buscar entrada por slug
/wp-json/wp/v2/posts?slug=hola-mundo

¿Qué hacer si la API está bloqueada?

Si la API no funciona, compruebe estas razones comunes:

1. Interferencia de plugins de seguridad

Plugins como Wordfence, iThemes Security o All In One WP Security pueden desactivar la API.

  • Vaya a la configuración del plugin
  • Busque el ajuste 'REST API' o 'JSON API'
  • Active la API o añada su frontend a la lista blanca (whitelist)

2. Estructura de enlaces permanentes

Navegue a Ajustes > Enlaces permanentes en WordPress y elija cualquier opción que no sea 'Simple'.

3. Problemas con .htaccess

En servidores Apache, el archivo .htaccess podría estar bloqueando la API.

Configuración de CORS

Dado que Next.js accederá a la API desde un dominio diferente, es posible que necesite conceder permisos CORS. Añada este código a su sitio WordPress:

En su archivo functions.php:

add_action('rest_api_init', function() {
    remove_filter('rest_pre_serve_request', 'rest_send_cors_headers');
    add_filter('rest_pre_serve_request', function($value) {
        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
        header('Access-Control-Allow-Headers: Content-Type');
        return $value;
    });
});

Buenas prácticas de seguridad para la API

  • Mantenga públicos únicamente los endpoints de lectura (GET)
  • Requiera autenticación para operaciones de escritura (POST, PUT, DELETE)
  • Implemente limitación de tasa (rate limiting) para evitar abusos

Comentarios y Discusión