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.

¿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.

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).

¡WordPress Hosting Gestionado con IONOS!

WordPress más ráìdo, más fácil y más seguro con tu asesor personal y dominio gratis durante el 1er año.

Dominio
Certificado SSL
Asistencia 24/7

¿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 > “Ejecutar” > escribe cmd en la ventana > “Aceptar”.
  • Activa la búsqueda en la barra de tareas > introduce cmd > 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” > “Utilidades”; en la ventana recién abierta, haz doble clic en “Terminal”.
  • En Dock, ve a “Aplicaciones” > “Utilidades” > “Terminal”

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

C:\Users\NombreUsuario>_

Escribe el siguiente comando:

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.

Con el comando

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:

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 y nuestro artículo JSONP: scripts para solicitar datos entre dominios diferentes.

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

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:

Para poder leer una sola publicación en el navegador, añade ahora la identificación a la entrada:

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

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 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.

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 <body> … </body>. 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:

<!--?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

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.


<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.

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.

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.

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.