# REST API de WordPress: en el corazón del CMS

El sistema de gestión de contenidos (CMS) WordPress goza de una gran popularidad. En comparación con otros CMS, en WordPress es muy fácil crear páginas web con distintos niveles de exigencia. Su sencillo manejo permite que incluso los redactores puedan llevar páginas web si tienen buenos conocimientos de Office. Además, los administradores de la web pueden utilizar los más de **55 000 *plugins*** disponibles que permiten realizar una amplia variedad de tareas en los sitios web y que además son, en su mayoría, gratuitos en la versión básica.

---

### Consejo

En IONOS, tienes todas las ventajas que WordPress ofrece para tu sitio web clasificadas en tres tarifas, Essential, Business y Unlimited. No dejes pasar esta oportunidad y aprovecha todo lo que te puede ofrecer un sistema muy fácil de aprender y con seguridad integrada y una plataforma optimizada para [alojar a tu proyecto de WordPress](https://www.ionos.mx/alojamiento/wordpress-hosting "Alojamiento WordPress con IONOS").

---

## ¿Qué es la REST API de WordPress?

WordPress REST API es el nombre de la **interfaz** que permite la comunicación con la **base de datos** que utiliza WordPress. La abreviatura API corresponde a Application Programming Interface (interfaz de programación de aplicaciones). Esta interfaz sirve para intercambiar información entre diferentes programas según un patrón definido, como en una conversación entre dos personas que solo podrán entenderse si hablan un **idioma común.** Puedes encontrar más información en nuestro artículo *[API: qué debes saber sobre las interfaces de programación](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/application-programming-interface-api/ "Application Programming Interface (API)")*.

**REST** es la abreviatura de Representational State Transfer (transferencia de estado representacional). Estos son los principios para el intercambio de información, establecidos en 1994 por el informático estadounidense Roy Fielding:

- **Uniformidad**: los URL para acceder a los recursos deben ser uniformes, coherentes y accesibles a través de un enfoque común como el GET.
- **Separación cliente-servidor**: si la tecnología del lado del servidor (por ejemplo, WordPress) cambia, una aplicación del lado del cliente (por ejemplo, una aplicación) debe poder acceder a ella.
- **Sin estado (*stateless*)**: si se produce una nueva solicitud a través de la API, el servidor no cambia de estado y no guarda la solicitud.
- **Cacheable**: asegura alta velocidad y adecuación en el lado del servidor o del cliente.
- **Sistema a capas (*layered system*)**: permite el acceso a través de varias capas.
- **Código a demanda (*code on demand,* opcional):** el código para la ejecución local solo se transfiere al cliente cuando es necesario.

En **WordPress**, estos requisitos están contenidos en el denominado **núcleo**, es decir, en la programación básica del sistema de gestión de contenidos, desde la **versión 4.7**. Anteriormente, existía el *plugin* WP REST API (WP API), que estuvo disponible hasta el 13 de mayo de 2018. A partir de la versión **5.x de WordPress** se han incluido en el núcleo del sistema algunos elementos que **amplían** las posibilidades de comunicación existentes con otras aplicaciones (de la web).

## ¿Para qué sirve la REST API de WordPress?

La interfaz permite la **comunicación** directa **con la base de datos de WordPress**, que almacena toda la información del sitio web. Esta base de datos trabaja con el sistema de gestión de bases de datos de código abierto **MySQL**. Algunos comandos permiten el acceso a través de la API integrada con fines de comunicación, lo cual puede hacerse de varias maneras.

### Acceso de la terminal a la base de datos

La REST API de WordPress te permite acceder al contenido de un sitio web de WordPress desde el **símbolo del sistema de Windows**:

- Haz clic con el botón derecho del ratón en el icono de Windows &gt; “Ejecutar” &gt; escribe *cmd* en la ventana &gt; “Aceptar”.
- Activa la búsqueda en la barra de tareas &gt; introduce *cmd* &gt; haz clic en la aplicación Símbolo del sistema.

O desde la **terminal** en **MacOS**:

- Escribe *cmd* + \[Espacio\] + *Terminal* y haz doble clic en el resultado de la búsqueda.
- En la barra de menú superior del escritorio, selecciona “Ir a” &gt; “Utilidades”; en la ventana recién abierta, haz doble clic en “Terminal”*.*
- En Dock, ve a “Aplicaciones” &gt; “Utilidades” &gt; “Terminal”

Inserta los comandos reales en el indicador intermitente de la pantalla. Por ejemplo, después de:

```none
C:\Users\NombreUsuario>_
```

Escribe el siguiente comando:

```none
curl -X OPTIONS -i https://tudominio.com/wp-json/
```

Pulsa “Intro” y unos momentos después obtendrás el resultado en la pantalla. Estos son los **datos básicos del sitio web** con las opciones permitidas (*OPTIONS*). Puedes ver que el comando *GET* está permitido: *Allow: GET*.

[![Imagen: REST API de WordPress con línea de comandos ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/9/csm_wordpress-rest-api-1_804dca0b9f.webp "REST API de WordPress con línea de comandos ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-1.jpg) Prueba de conexión a la REST API de WordPress a través de la línea de comandos o terminal con salida de un mensaje HTTP.       Con el comando

```none
curl -X GET http://tudominio.com/wp-json/
```

podrás acceder a toda la información de la base de datos, al igual que con el procedimiento descrito en la siguiente sección.

### Usar la REST API de WordPress en el navegador

También puede leerse el contenido de la base de datos de WordPress mediante un **acceso HTTP a través del navegador**. En este caso también se usa JSON:

```none
https://tudominio.es/wp-json/
```

---

### Hecho

JSON es la abreviatura de JavaScript Object Notation, un formato de texto para la transmisión de datos. Es sencillo de aprender y leer y muy flexible de usar, como muestra nuestro [tutorial sobre el marcado con JSON-LD](https://www.ionos.mx/digitalguide/paginas-web/creacion-de-paginas-web/tutorial-marcado-con-json-ld-segun-schemaorg/ "Tutorial: marcado con JSON-LD según schema.org") y nuestro artículo [JSONP: scripts para solicitar datos entre dominios diferentes.](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/jsonp/ "JSONP")

---

[![Imagen: REST API de WordPress: solicitud a través del navegador ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/d/7/csm_wordpress-rest-api-2_a61c437342.webp "REST API de WordPress: solicitud a través del navegador ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-2.jpg) El acceso HTTP a través de la WordPress REST API hace que se visualice en el navegador toda la información esencial sobre el sitio web de WordPress, que se muestra aquí con la información bajo JSON y encabezados.     La información recuperada se muestra como un libro abierto. Para profundizar en el contenido del sitio web, la REST API de WordPress, con su amplia gama de comandos, permite la recuperación detallada de componentes definidos de la base de datos: por ejemplo, el acceso a **publicaciones** (***posts***) mediante

```none
https://tudominio.com/wp-json/wp/v2/posts
```

Así podrás tener una visión de todos los *posts* en la base de datos, incluyendo las versiones, enlaces, contenido audiovisual, autores y mucho más. Las publicaciones individuales están marcadas claramente con su identificación en la base de datos de WordPress:

[![Imagen: REST API de WordPress: ver una publicación en la base de datos ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/9/c/csm_wordpress-rest-api-3_6ee2f1d9d5.webp "REST API de WordPress: ver una publicación en la base de datos ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-3.jpg) La publicación con el ID 6576 en la base de datos MySQL del sitio web de WordPress.       Para poder leer una sola publicación en el navegador, añade ahora la identificación a la entrada:

```none
https://tudominio.com/wp-json/wp/v2/posts/6576
```

[![Imagen: REST API de WordPress: leer una publicación determinada en el navegador por ID ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/a/c/csm_wordpress-rest-api-4_000b2f752e.webp "REST API de WordPress: leer una publicación determinada en el navegador por ID ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-4.jpg) El ID permite leer toda la información de una publicación en la base de datos.     Este procedimiento puede realizarse con todos los contenidos: además de con las publicaciones, también con **páginas (*pages*), contenido audiovisual (*media*), autores (*author*)**, etc. Puedes encontrar el manual de la REST API de WordPress con una referencia completa de comandos con el nombre de [REST API Handbook](https://developer.WordPress.org/rest-api/ "REST API Handbook") en el sitio de desarrolladores de WordPress.org.

## La REST API de WordPress en la práctica

¿Para qué se necesitan las API de WordPress? Te lo ilustramos con un ejemplo práctico: imagina que tienes una página web nueva que recopila noticias de otros proveedores de Internet. Este proceso funciona con la REST API de WordPress solo si los otros sitios web proveedores están programados en WordPress. Por eso, se consultan los **contenidos con sus identificaciones en los servidores seleccionados.**

[![Imagen: API de WordPress: un simple ejemplo práctico ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/2/e/csm_ES-API-WordPress_7b19f17486.webp "API de WordPress: un simple ejemplo práctico ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/ES-API-WordPress.png) El sitio web de noticias XYZ recopila continuamente información específica de los proveedores de los sitios web X, Y Z y la muestra al usuario a demanda.       Para mantener el contenido actualizado, existen varias opciones de programación, incluyendo los lenguajes de *script* PHP o la biblioteca jQuery de JavaScript. Te lo explicamos con dos simples ejemplos de código para la API de WordPress.

### Leer un post con PHP

Para leer una publicación de otra página de WordPress, inserta una **sección de código** en *&lt;body&gt;&amp;nbsp;…&amp;nbsp;&lt;/body&gt;*. Esta página debería poder procesar PHP, en este ejemplo con el nombre de archivo *test-wp-rest-api.php*. Los nombres de los campos que se van a entregar se toman de la consulta JSON que se muestra arriba (*guía*, *título*, *enlace*, *contenido*...). La sección de código consiste en un *script* PHP que obtiene la información, y en una parte HTML que representa los datos a través de PHP:

```none
<!--?php</codesnippet-->
$url = 'https://www.misitio.com/wp-json/wp/v2/posts/6576'; // La ruta de la solicitud JSON con ID
$data = file_get_contents($url); // Pasar el contenido a una variable
$mydata = json_decode($data, true); // Descodificar JSON
?>
<h1>PHP: Leer la publicación mediante la REST API de WordPress</h1> // Encabezado
<div id="mydata"></div>
<!--?php echo $mydata['content']['rendered']; ?--> // Salida de 'content' con la ID 6576
```

[![Imagen: WordPress REST API: un ejemplo práctico ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/f/d/csm_wordpress-rest-api-6_fd2843e9e0.webp "WordPress REST API: un ejemplo práctico ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-6.jpg) Este es el aspecto en pantalla de la publicación de ejemplo en inglés con ID 6576, arriba con jQuery, abajo con PHP.       ###  Leer la publicación con jQuery

Una alternativa para la lectura de contenidos es jQuery. Para poder usarla, esta biblioteca debe estar **incluida en el encabezado de la página.** En este caso, todo funciona con la extensión de archivo *.html*.

```none
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // Incluir jQuery
<script>// La sección para leer los datos de la publicación</codesnippet></script>
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
<h1>jQuery: Leer la publicación mediante la REST API de WordPress</h1> // Encabezado
<div id="mydata"> Representación de 'content' de la publicación con el ID 6576</div>
```

El resultado es idéntico a la salida programada por PHP en el navegador. El contenido a través de jQuery se emite sin una variable adicional en el contenedor DIV *mydata*.

## ¿Qué ocurre en los sitios web con otros CMS?

La WordPress REST API debe su nombre a que es un componente de la programación de WordPress. Por este motivo, la interfaz solo está disponible si las páginas que se consultan están creadas con WordPress.

[![Imagen: REST API de WordPress: consultar HTTP con otro CMS ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/f/c/csm_wordpress-rest-api-7_e6e8594582.webp "REST API de WordPress: consultar HTTP con otro CMS ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-7.jpg) Si un sitio web no está configurado con WordPress, la API no funciona. Al intentar realizar una consulta, aparece un mensaje de error 404.       El intento de consulta da un **mensaje de error 404**. Para estos sitios web hay otras soluciones que permiten acceder a la base de datos del CMS.

## Deshabilitar el acceso a la REST API de WordPress

No todo el mundo quiere que la gente pueda leer, o incluso reutilizar, la información de su sitio web. Para evitarlo, se activa una **barrera** en el *backend* de WordPress.

[![Imagen: REST API de WordPress: impedir la salida de datos ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/4/8/csm_wordpress-rest-api-8_7a637d6b97.webp "REST API de WordPress: impedir la salida de datos ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-8.jpg) Con el plugin de WordPress Disable WP REST API se bloquea el acceso a los datos del sitio web, de forma que solo los usuarios registrados pueden acceder a ella.       El *plugin* Disable WP REST API del repositorio de WordPress debe activarse después de la instalación, como cualquier otro *plugin*, para **evitar el acceso no autorizado**. No se requieren más ajustes.

[![Imagen: REST API de WordPress: se impide el acceso por plugin ](https://www.ionos.mx/digitalguide/fileadmin/_processed_/7/6/csm_wordpress-rest-api-9_9f74643d6c.webp "REST API de WordPress: se impide el acceso por plugin ")](https://www.ionos.mx/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-9.jpg) El plugin de WordPress Disable WP API REST bloquea el acceso.       El código de estado **401 (no autorizado)** significa que el servidor ha rechazado la solicitud HTTP por falta de autenticación o porque esta no es válida. Sin embargo, a diferencia del error 403, sí permite la autenticación.

Muchos sitios web están protegidos de esta manera para **evitar el robo automatizado de contenido**. No utilizar contenidos de terceros sin aprobación previa del operador del sitio web no es solo cuestión de educación, sino también de cumplimiento con las leyes sobre derechos de autor. Para probar con tu propio sitio web, basta con desactivar el *plugin*. Esto permite recuperar el contenido de la base de datos de la manera descrita. Los datos del *plugin* no pueden perderse.


This is a markdown version of: [https://www.ionos.mx/digitalguide/hosting/blogs/rest-api-de-wordpress/](https://www.ionos.mx/digitalguide/hosting/blogs/rest-api-de-wordpress/) for AI/LLM consumption.