• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Cómo usar la REST API de WordPress

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

  • Subtítulo desde título de la entrada en WordPressSubtítulo desde título de la entrada en WordPress
  • Botones para el campo de cantidad en WooCommerceBotones para el campo de cantidad en WooCommerce
  • Etiqueta de Agotado en lista de productos WooCommerce sin pluginsEtiqueta de Agotado en lista de productos WooCommerce sin plugins
  • Ajax sin usar jQuery en WordPressAjax sin usar jQuery 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

  13. Harold

    23 abril, 2021

    Saludos. Yo he hecho una aplicacion con PHP y funciona bien, pero tengo un problema, cuando el contenido (no el titulo, sino el contenido) tiene los caracteres mayor que y menor que () lo corta hasta ahi, por ejemplo, si el contenido lleva “y para eso debes ir a menu > ” lo deja hasta menu y de ahi en adelante lo borra.
    He buscado por todos lados una solución y no la encuentro.
    Ojo, no puedo modificar configuraciones en el WP de destino, tengo que resolverlo desde mi PHP y no quisiera sustituir los caracteres. Ya probe con casi todas codificaciones de contenido y nada, WP lo recibe mal siempre.
    Si me puedes ayudar, gracias

    • Jhon Marreros Guzmán

      27 abril, 2021

      Hola, WordPress te lo envía como una cadena de texto plano, no debería cortarse el envío. Podrías probar con otro sitio web y verificar si te sucede lo mismo.

  14. Facundo

    6 septiembre, 2021

    Jhon, un lujo tus explicaciones.

    Te consulto, ésto me sirve para realizar en WordPress una conexion a una API externa y obtener mediante un JSON determinados campos e insertarlos en un Custom Post (ACF)?

    Muchas gracias!

    • Jhon Marreros Guzmán

      8 septiembre, 2021

      Hola, te sirve para conectarte a WordPress remotamente, pero no lo contrario. En tu caso si quieres desde WordPress conectarte a una API remota tendrías que evaluar hacer un plugin personalizado.

  15. Mathias

    31 enero, 2022

    Jhon, tremendos aportes. Como podriamos hacer para atraves de la api actualizar campos creados con acf?

    • Jhon Marreros Guzmán

      1 febrero, 2022

      Hola, sería utilizar las funciones de acf una vez obtenidos los datos desde la API, revisa por ejemplo: https://www.advancedcustomfields.com/resources/update_field/

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

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Cómo modificar una plantilla de WooCommerce

Usar el Inspector de código para modificar un theme WordPress

Insertar Font Awesome en WordPress

Posts relacionados sin plugins en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2022 Todos los derechos reservados