• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
Inicio / Tutoriales / Core / Cómo usar la REST API de WordPress
Anuncio banner webservi

Cómo usar la REST API de WordPress

REST API en WordPress

[ 14 noviembre 2016 ] [ Actualizado: 2 diciembre 2017 ]
[ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

funcionalidad optimización

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

¿Te gustaría recuperar tus entradas desde una aplicación móvil?, ¿o tal vez integrar el contenido de tu sitio con una aplicación de escritorio?, las posibilidades son infinitas a través del uso de la REST API de WordPress.

 

1- Generalidades

Además de nuestro sitio web, existen diversas aplicaciones con las que interactuamos; los Servicios Web nos permiten integrar aplicaciones externas de manera sencilla. En WordPress utilizaremos REST API como un Servicio Web para la comunicación entre aplicaciones.

API WordPress

Conceptos importantes:

  • API (Application Programming Interface) es una interfaz de programación que un software ofrece a otro, a través de rutinas, funciones y métodos.
  • REST (Representational State Transfer) es una arquitectura de software para sistemas hipermedia distribuídos. En la actualidad se usa para describir cualquier interfaz entre sistemas que utilice directamente HTTP para obtener datos o indicar la ejecución de operaciones sobre los datos, en cualquier formato (XML, JSON, etc).
  • Recursos: Son los bloques principales de la arquitectura REST, cuando hablamos de WordPress estos recursos son: entradas, páginas, comentarios, usuarios, etc
  • URIs (Uniform Resource Identifier): Es la dirección para identificar a un recurso.
  • HTTP Verbs: Una REST API permite realizar diversas operaciones como leer, crear, actualizar y borrar recursos, para esto usa los HTTP Verbs como sigue:
    • GET: Usado para leer o devolver un recurso.
    • POST: Usado para crear un nuevo recurso.
    • PUT: Usado para actualizar un recurso.
    • DELETE: Usado para borrar un recurso.
    • HEAD: Usado para verificar la existencia de un recurso.
    • OPTIONS: Usado para devolver información que soporta un recurso.

 

2- REST API en WordPress

Actualmente ya no es necesario usar un plugin, la funcionalidad de REST API viene incluida por defecto en WordPress, por lo que puedes saltarte este punto

La REST API WordPress convierte a tu sitio en una poderosa herramienta de administración y publicación de contenido fácil de usar por otras aplicaciones.

En futuras versiones de WordPress esta funcionalidad vendrá totalmente incluida, sin embargo a la fecha tenemos que instalar el plugin WP REST API (V2).

Plugin WordPress REST API

 

3- Haciendo consultas a la REST API

Una vez tenemos instalado el plugin podemos realizar diferentes consultas directamente en la barra de navegación o usar un complemento de navegador como Postman o REST easy.

Debemos agregar /wp-json/wp/v2/ a nuestra url de petición, en la siguiente imagen se ha usado Postman para hacer una petición Get de todos las entradas del sitio.

Ejemplo get PostmanEsta petición nos devolverá el contenido de nuestras entradas en formato Json.

A continuación veremos algunas peticiones más comunes:

Listar todas las entradas usando GET

http://midominio.com/wp-json/wp/v2/posts/

Listar una entrada específica xxx usando GET

http://midominio.com/wp-json/wp/v2/posts/xxx

Listar las entradas de la categoría xxx usando GET

http://midominio.com/wp-json/wp/v2/posts?filter[cat]=xxx

 

4- Autenticación en la REST API

La autenticación nos permite realizar tareas de creación, actualización y eliminación de datos. WP REST API permite tres tipos de autenticación:

  • Autenticación Base.
  • Autenticación OAuth.
  • Autenticación por Cookie.

A continuación usaremos código PHP para conectarse a un sitio Web que tenga habilitado la REST API y realizaremos tareas de creación, actualización y eliminación de entradas.

Para desarrollar nuestro ejemplo usaremos la autenticación base, instalaremos el plugin Basic Auth. Tener en cuenta que este tipo de autenticación no debería ser usado en entornos de producción.

 

5- Creando una nueva entrada

El siguiente código PHP sirve para conectarse a nuestro sitio WordPress y crear una nueva entrada

Lo que hace este código:

  • Defino la url de mi sitio REST API en la variable $host
  • La variable $data_string tendrá los datos del nuevo post en formato json
  • Defino la variable $headers, tener en cuenta que aquí pasaremos los datos de autenticación.
  • Uso CURL
    • Paso las cabeceras
    • Puesto que es una creación usaré POST
    • Paso los datos
    • Defino para retornar un resultado

 

6- Actualizando una entrada

Para realizar una modificación lo único que tenemos que cambiar en el código anterior es la url de la variable $host y los datos a modificar en la variable $data.

La url a usar será del tipo:

$host = ‘http://encurso.app/wordpress461/wp-json/wp/v2/posts/123’;

En donde 123 es el ID del post a modificar, el código completo se puede ver a continuación:

 

7- Borrando una entrada

Para realizar una eliminación la url de la variable $host es similar a una actualización, la diferencia es que en este caso no necesitamos pasar la variable $data.

En el código anterior :

  • Vemos que la url tiene el valor 123 que es el ID del post a eliminar.
  • Usamos DELETE para indicar a la REST API que se trata de una eliminación.

 

8- Conclusión

En los tres últimos puntos hemos visto cómo realizar operaciones sobre las entradas de WordPress usando código PHP, sin embargo es posible usar cualquier otro lenguaje de programación para realizar estas operaciones, la REST API de WordPress se encargará de gestionar las operaciones enviadas.

 

¿Aún con dudas? En el siguiente video se explica en detalle los puntos anteriores.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Guía visual de Hooks para StoreFront y WooCommerceGuía visual de Hooks para StoreFront y WooCommerce
  • Extraer un sitio desde un multisiteExtraer un sitio desde un multisite
  • Eliminar el slug de la URL de un Custom Post TypeEliminar el slug de la URL de un Custom Post Type
  • Búsqueda en tabla personalizada en WordPressBúsqueda en tabla personalizada en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 4,75 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Carlos

    9 mayo, 2017

    He buscado información sobre este tema hasta cansarme… y aparece tu sitio, ¡gracias!
    Además del conocimiento que atesoras, la didáctica, el ritmo de los tutoriales es excelente.
    Te agradezco muchísimo el que expongas información que no se ve en ningún lado en español, y aunque me voy defendiendo con el inglés, en mi idioma me resulta más rápido cualquier aprendizaje.
    Un saludo,

  2. Matias

    27 mayo, 2017

    Hola
    quisiera saber como hacer para filtrar un id de página, he intentado con los filters que se utilizan para los post, pero no funciona para las páginas.
    Gracias, saludos.

    • Cindy

      9 junio, 2018

      Hola Matias. Pudiste solucionarlo? también necesito lo mismo. Alguien sabe como? por fa…

  3. Menotti

    27 diciembre, 2017

    Hola como hacer para enviar media
    $host = ‘http://tudominio.com/wp-json/wp/v2/media’ ???

  4. CarlosB

    23 marzo, 2018

    puedo usar esto para mostrar entradas de un sitio A en un sitio B ?

  5. Jhon Marreros Guzmán

    24 marzo, 2018

    Hola, si, pero tal vez sea mejor que evalúes usar plugins de sindicación para lo que comentas. Es decir desde el sitio origen publicas un Feed que será leído por el sitio destino con un plugin de RSS.

  6. German

    9 abril, 2018

    A ver si alguno me tira una idea. Debo hacer que un aplicacion de escritorio impacte el usuario y el password que genera en la tabla de usuarios de wordpress.

    Estaba pensando si con la API REST es posible realizar esta operación?

  7. Gastón Dourrom

    17 abril, 2018

    Hola! como estas.. muy buen post… te quería consultar lo siguiente..
    yo quiero llamar un JSON desde una Url… estuve viendo por ahi y vi que escriben en el function.php pero no logro entender bien cómo crear dicha función… para dejarlo un poco mas claro… yo necesito sacar la info de esta url «http://date.jsontest.com/» y mostrarla en wordpress ya se aun post, una entrada o un widget.. a lo que se me ocurrió que una vez sepa como hacer para utilizar la info de la url «http://date.jsontest.com/» crearle un shortcode para asi mostrar donde yo quiera… muchas gracias por tu tiempo!!

    • Jhon Marreros Guzmán

      19 abril, 2018

      Hola, para el caso que comentas es mejor construir un plugin y no llenar tu functions.php de código. Tu plugin deberá poder hacer consultas Ajax para que recuperes esa información remota, te sugiero revisar: https://decodecms.com/ajax-en-wordpress-de-manera-correcta/

  8. Eudys Mora

    11 junio, 2018

    Hola, yo tengo una duda, ¿es posible obtener datos como videos, sliders o google maps que se encuentran en un post de una pagina creada con wordpress?

    • Jhon Marreros Guzmán

      11 junio, 2018

      Hola, depende, si estos elementos son contenidos en HTML que forman parte del post, si que puedes extraerlos, sin embargo si son shortcodes generados por plugins externos como Visual Composer, Page Builder, Divi, etc, no será posible.

  9. Karen Rodríguez

    14 septiembre, 2018

    Hola que tal, e leído tu sitio el cual me ayudo mucho, y te lo agradezco mucho, sin en cambio hay algo que me tiene aún investigando y no eh encontrado la forma de darle solución, espero tú puedas ayudarme, verás quisiera poder obtener un json con aquellos post que son populares, la pagina en wp contiene un widget el cual muestra las «populares» (valga la redundancia), no se si habría alguna forma de obtener esos datos en el json. Gracias de antemano.

    • Jhon Marreros Guzmán

      17 septiembre, 2018

      Hola, revisa el siguiente artículo: https://medium.com/fiatinsight/find-popular-posts-with-the-wordpress-rest-api-109013bdc5e3 , además hay algo similar en los videos para suscriptores (al suscribirte a la lista)

  10. JOSE MAGAN

    10 febrero, 2019

    Estimado Jhon:
    Excelentes videos, sobre todo el de REST API, muchas gracias.
    JM.

  11. Daniel

    9 mayo, 2019

    Hola, necesito un curso de esto, tienes alguno que me enseñe a conectar WordPress con Facebook? Saludos.

  12. Martin

    17 septiembre, 2020

    Muchacho, que es xxx? id o slug?

    http://midominio.com/wp-json/wp/v2/posts?filter%5Bcat%5D=xxx

    • Jhon Marreros Guzmán

      18 septiembre, 2020

      Hola, es el ID de la categoría

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral primaria

Presentación

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
Los 5 posibles errores que estas cometiendo cuando trabajas con código en WordPress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social

Populares

Agregar login y logout en un menú de WordPress

Configura el Tema Twenty Seventeen WordPress

Exportar / importar la configuración del personalizador de temas en WordPress

Añadir una nueva ubicación de menú a un theme WordPress

Recientes

  • Guía visual de Hooks para StoreFront y WooCommerce
  • Extraer un sitio desde un multisite
  • Eliminar el slug de la URL de un Custom Post Type
  • Búsqueda en tabla personalizada en WordPress
alojamiento wordpress

© logo decode pie Copyright 2021 | Todos los derechos reservados | Política de Privacidad