El sistema de gestión de co­n­te­ni­dos (CMS) WordPress goza de una gran po­pu­la­ri­dad. En co­m­pa­ra­ció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 re­da­c­to­res puedan llevar páginas web si tienen buenos co­no­ci­mie­n­tos de Office. Además, los ad­mi­ni­s­tra­do­res de la web pueden utilizar los más de 55 000 plugins di­s­po­ni­bles 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 cla­si­fi­ca­das en tres tarifas, Essential, Business y Unlimited. No dejes pasar esta opo­r­tu­ni­dad y aprovecha todo lo que te puede ofrecer un sistema muy fácil de aprender y con seguridad integrada y una pla­ta­fo­r­ma op­ti­mi­za­da 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 co­mu­ni­ca­ción con la base de datos que utiliza WordPress. La abre­via­tu­ra API co­rre­s­po­n­de a Ap­pli­ca­tion Pro­gra­m­mi­ng Interface (interfaz de pro­gra­ma­ción de apli­ca­cio­nes). Esta interfaz sirve para in­te­r­ca­m­biar in­fo­r­ma­ción entre di­fe­re­n­tes programas según un patrón definido, como en una co­n­ve­r­sa­ción entre dos personas que solo podrán en­te­n­de­r­se si hablan un idioma común. Puedes encontrar más in­fo­r­ma­ción en nuestro artículo API: qué debes saber sobre las in­te­r­fa­ces de pro­gra­ma­ción.

REST es la abre­via­tu­ra de Re­pre­se­n­ta­tio­nal State Transfer (tra­n­s­fe­re­n­cia de estado re­pre­se­n­ta­cio­nal). Estos son los pri­n­ci­pios para el in­te­r­ca­m­bio de in­fo­r­ma­ción, es­ta­ble­ci­dos en 1994 por el in­fo­r­má­ti­co es­ta­dou­ni­de­n­se Roy Fielding:

  • Uni­fo­r­mi­dad: los URL para acceder a los recursos deben ser uniformes, cohe­re­n­tes y ac­ce­si­bles a través de un enfoque común como el GET.
  • Se­pa­ra­ción cliente-servidor: si la te­c­no­lo­gía del lado del servidor (por ejemplo, WordPress) cambia, una apli­ca­ción del lado del cliente (por ejemplo, una apli­ca­ció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 ade­cua­ció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 tra­n­s­fie­re al cliente cuando es necesario.

En WordPress, estos re­qui­si­tos están co­n­te­ni­dos en el de­no­mi­na­do núcleo, es decir, en la pro­gra­ma­ción básica del sistema de gestión de co­n­te­ni­dos, desde la versión 4.7. An­te­rio­r­me­n­te, existía el plugin WP REST API (WP API), que estuvo di­s­po­ni­ble 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 po­si­bi­li­da­des de co­mu­ni­ca­ción exi­s­te­n­tes con otras apli­ca­cio­nes (de la web).

Hosting para WordPress ge­s­tio­na­do
Crea tu página con IA, nosotros hacemos el resto
  • Creación fácil y rápida gracias a la IA integrada
  • To­ta­l­me­n­te pe­r­so­na­li­za­ble con pla­n­ti­llas y plugins
  • Ac­tua­li­za­ción sin co­m­pli­ca­cio­nes y menos ad­mi­ni­s­tra­ción

¿Para qué sirve la REST API de WordPress?

La interfaz permite la co­mu­ni­ca­ción directa con la base de datos de WordPress, que almacena toda la in­fo­r­ma­ció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 co­mu­ni­ca­ció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 apli­ca­ció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 es­cri­to­rio, se­le­c­cio­na “Ir a” > “Uti­li­da­des”; en la ventana recién abierta, haz doble clic en “Terminal”.
  • En Dock, ve a “Apli­ca­cio­nes” > “Uti­li­da­des” > “Terminal”

Inserta los comandos reales en el indicador in­te­r­mi­te­n­te 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 pe­r­mi­ti­das (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 in­fo­r­ma­ción de la base de datos, al igual que con el pro­ce­di­mie­n­to 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 abre­via­tu­ra de Ja­va­S­cri­pt Object Notation, un formato de texto para la tra­n­s­mi­sió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 di­fe­re­n­tes.

La in­fo­r­ma­ción re­cu­pe­ra­da se muestra como un libro abierto. Para pro­fu­n­di­zar en el contenido del sitio web, la REST API de WordPress, con su amplia gama de comandos, permite la re­cu­pe­ra­ción detallada de co­m­po­ne­n­tes definidos de la base de datos: por ejemplo, el acceso a pu­bli­ca­cio­nes (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, in­clu­ye­n­do las versiones, enlaces, contenido au­dio­vi­sual, autores y mucho más. Las pu­bli­ca­cio­nes in­di­vi­dua­les están marcadas cla­ra­me­n­te con su ide­n­ti­fi­ca­ción en la base de datos de WordPress:

Para poder leer una sola pu­bli­ca­ción en el navegador, añade ahora la ide­n­ti­fi­ca­ción a la entrada:

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

Este pro­ce­di­mie­n­to puede rea­li­zar­se con todos los co­n­te­ni­dos: además de con las pu­bli­ca­cio­nes, también con páginas (pages), contenido au­dio­vi­sual (media), autores (author), etc. Puedes encontrar el manual de la REST API de WordPress con una re­fe­re­n­cia completa de comandos con el nombre de REST API Handbook en el sitio de de­sa­rro­lla­do­res de WordPress.org.

La REST API de WordPress en la práctica

¿Para qué se necesitan las API de WordPress? Te lo ilu­s­tra­mos con un ejemplo práctico: imagina que tienes una página web nueva que recopila noticias de otros pro­vee­do­res de Internet. Este proceso funciona con la REST API de WordPress solo si los otros sitios web pro­vee­do­res están pro­gra­ma­dos en WordPress. Por eso, se consultan los co­n­te­ni­dos con sus ide­n­ti­fi­ca­cio­nes en los se­r­vi­do­res se­le­c­cio­na­dos.

Para mantener el contenido ac­tua­li­za­do, existen varias opciones de pro­gra­ma­ción, in­clu­ye­n­do los lenguajes de script PHP o la bi­blio­te­ca jQuery de Ja­va­S­cri­pt. Te lo ex­pli­ca­mos con dos simples ejemplos de código para la API de WordPress.

Leer un post con PHP

Para leer una pu­bli­ca­ció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 in­fo­r­ma­ción, y en una parte HTML que re­pre­se­n­ta 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 pu­bli­ca­ción con jQuery

Una al­te­r­na­ti­va para la lectura de co­n­te­ni­dos es jQuery. Para poder usarla, esta bi­blio­te­ca debe estar incluida en el en­ca­be­za­do 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 pro­gra­ma­da por PHP en el navegador. El contenido a través de jQuery se emite sin una variable adicional en el co­n­te­ne­dor DIV mydata.

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

La WordPress REST API debe su nombre a que es un co­m­po­ne­n­te de la pro­gra­ma­ción de WordPress. Por este motivo, la interfaz solo está di­s­po­ni­ble 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 so­lu­cio­nes que permiten acceder a la base de datos del CMS.

Des­ha­bi­li­tar el acceso a la REST API de WordPress

No todo el mundo quiere que la gente pueda leer, o incluso re­uti­li­zar, la in­fo­r­ma­ción de su sitio web. Para evitarlo, se activa una barrera en el backend de WordPress.

El plugin Disable WP REST API del re­po­si­to­rio de WordPress debe activarse después de la in­s­ta­la­ción, como cualquier otro plugin, para evitar el acceso no au­to­ri­za­do. No se requieren más ajustes.

El código de estado 401 (no au­to­ri­za­do) significa que el servidor ha rechazado la solicitud HTTP por falta de au­te­n­ti­ca­ción o porque esta no es válida. Sin embargo, a di­fe­re­n­cia del error 403, sí permite la au­te­n­ti­ca­ción.

Muchos sitios web están pro­te­gi­dos de esta manera para evitar el robo au­to­ma­ti­za­do de contenido. No utilizar co­n­te­ni­dos de terceros sin apro­ba­ción previa del operador del sitio web no es solo cuestión de educación, sino también de cu­m­pli­mie­n­to con las leyes sobre derechos de autor. Para probar con tu propio sitio web, basta con des­ac­ti­var el plugin. Esto permite recuperar el contenido de la base de datos de la manera descrita. Los datos del plugin no pueden perderse.

Ir al menú principal