Gracias a la API REST de WordPress se nos ha abierto un amplio abanico de posibilidades, entre ellas importar contenido JSON en WordPress, que apriori puede ser una tarea un poco compleja, pero con la API REST de WordPress y unos consejitos, verás como no es nada de otro mundo.

¿Qué es la API REST de WordPress?

La API REST de WordPress, es lo hace que WordPress pase de ser un simple CMS a un framework, en el cual nos permite desarrollar aplicaciones o funcionalidades e integrarlas. Desde hace ya varios años se ha podido hacer uso de ella con algún plugin, pero ha sido a principios del año pasado cuando se incluyó en el Core de WordPress.

¿Qué supone esto?

Que ahora es mucho más fácil la creación de plugins, también nos permite comunicarnos de una manera fácil con otras páginas webs y apps para móvil. Además, esto ha abierto las puertas a programar con otros lenguajes que no son PHP. Por ejemplo, ahora podemos crear una app en Ionic, que lea los artículos que tenemos en nuestro blog de Worpdress de una manera mucho más sencilla que antes.

¿Qué es JSON?

Primero de todo, tenemos que saber que es JSON y por qué es tan importante en el mundo de las páginas webs y apps.

JSON es uno de los formatos de texto más rápido que existe hoy en día para el intercambio de datos. Antes se usaba mucho XML, pero con el paso de los años, JSON se va consolidando en el mundo de la programación y uno de los motivos, es la sencillez para leer el texto.

Ejemplo de un código en formato JSON.
{
«user_id»: «1»,
«name»: «Randy»
}

Preparando el entorno

  1. Para trabajar en WordPress, lo primero de todo es tenerlo instalado, aquí os dejo el tutorial de Hostinger para quien todavía no lo tenga, donde puedes encontrar las instrucciones muy bien explicadas.
  2. Para poder escribir en una página personalizada, tenemos que crear una plantilla, deberemos acceder al servidor a la ruta donde se encuentra el tema de WordPress que estemos usando, ejemplo: es public_html/wp-content/themes/Avada.
  3. Duplicamos el fichero page.php y lo cambiamos de nombre, por ejemplo: page2.php
  4. En la cabecera del fichero, justo debajo de las etiquetas «<?php» cambios el texto que hay entre comentarios por este:
    /*
    Template Name: Test
    */

    Con esto indicamos a WordPress que coja este fichero como una plantilla llamada Test.

  5. Nos vamos a wordpress y creamos una nueva página, ahora en la parte de la derecha donde indica»Atributos de página», seleccionamos la plantilla «Test».
  6. ¡Ya podemos trabajar desde el fichero de page2.php! Es la hora de programar la página de php

Como pasar de JSON a WordPress

Para poder pasar datos de JSON a WordPress tenemos que hacer 2 cosas.

  • Recibir la información de una API
  • Traducir la información para mostrarla correctamente

Las princiapeles funciones para trabajar con la API en WordPress son las siguientes:

  • wp_remote_get()
  • wp_remote_post()
  • wp_remote_head()
  • wp_remote_retrieve_body()

En este caso, como lo que necesitamos es recibir los datos, vamos a utilizar el método wp_remote_get(). Para hacer este tutorial vamos a usar de ejemplo la web de Loterías y Apuestas del Estado, que devuelve un JSON con toda la información sobre los diferentes juegos.

JSON que vamos a leer

A continuación os muestro un trozo del JSON que muestra la url, vamos a fijarnos en los 2 recuadros en rojo, que es lo que queremos mostrar por pantalla.

json formateado

Lo primero que vamos a hacer es utilizar el método wp_remote_get() para recibir todo JSON, y guardarlo en la variable $request.


$request = wp_remote_get( 'https://www.loteriasyapuestas.es/servicios/proximosv3?game_id=TODOS' );

Esto hará la llamada a la URL especifica y devolverá un array con toda la información de la página, incluyendo cabeceras (HEADERS), cookies, etc..

Antes de hacer nada con la respuesta de la web, tenemos que validar si esta información está llegando correctamente.


if( is_wp_error( $request ) ) {
 return false;
 }

De esta manera, si la llamada falla, devolverá un error.

Una vez que sabemos que la llamada ha sido satisfactoria, vamos a recibir la información y almacenar el objeto JSON.

$body = wp_remote_retrieve_body( $request );

Y una vez que tenemos almacenado el JSON vamos a traducirlo.

Ya tenemos el JSON decodificado y listo para ser mostrado, ahora viene la parte más compleja, lo que tenemos que saber es cómo recorrer el JSON y cómo mostrarlo.

if( ! empty( $data ) ) {
echo '&amp;lt;ul&amp;gt;';
foreach($data as $key){
echo '&amp;lt;li&amp;gt;';
echo $key-&amp;gt;game_id;
echo '=';
echo $key-&amp;gt;premio_bote;
echo '&amp;lt;/li&amp;gt;';
}
echo '&amp;lt;/ul&amp;gt;';
 }

En este código lo primero que estamos haciendo es saber si hay información con el «if» y luego estamos recorriendo el string con un «foreach», las etiquetas <li> y <ul> son para ordenar en formato listado los resultados obtenidos y los «echo» son para imprimir los resultados.

El «foreach» lo que hace es recorrer el array almacenado en $data y le va incrementando el valor en cada iteración con $key. Entonces, en cada iteracción se imprimirá los echo con el valor que tenga game_id y premio_bote, que son y quedará de la siguiente forma:

resultado fichero JSON

Esto solamente es un pequeño ejemplo para mostrar la información de un JSON en WordPress, pero las posibilidades son infinitas. Espero que te haya servido de ayuda este tutorial, y si tienes cualquier consulta o algún aporte al código, no dudes en dejarme tu comentario.