• 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 / Leer datos desde una API externa en WordPress

Leer datos desde una API externa en WordPress

Leer datos desde una API externa en WordPress

[ 15 septiembre 2021 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

funcionalidad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior habíamos visto cómo usar la API Rest de WordPress, sin embargo en este artículo veremos como leer desde WordPress una API Rest de un servicio externo.

 

Resultado Final

Al final lo que queremos obtener será algo similar a lo que se muestra en la siguiente imagen:

Mostrar datos de API externa en una página

 

Generalidades

  • Accederemos a una API gratuita del sitio Sampleapis.
  • Usaremos las funciones de WordPress para conectarse a esta API de manera simple.
  • Los resultados lo mostraremos en una página específica de WordPress.

 

Código para leer datos desde una API externa

En el código anterior:

  • Usamos el Hook de filtro the_content para agregar contenido adicional en una página específica
  • La comprobación de la página la hacemos con la función is_page() y usuando el slug de la página
  • La recuperación de los datos de la API externa lo hacemos en la función get_data_api()
  • Usamos la función wp_remote_get() para obtener los datos de la url pública de la API
  • Si existe algún error lo comprobamos con la función is_wp_error()
  • De la respuesta recibida obtenemos los datos con la función wp_remote_retrieve_body()
  • Usamos la función json_decode() para decodificar la cadena de texto devuelta y trabajarlo en PHP
  • Los datos tienen la estructura de un array por lo que podemos recorrer el array y mostrar los datos en formato de tabla HTML
  • Usamos una variable de $template y la función str_replace() para reemplazar la estructura de tabla
  • Finalmente retornamos el HTML de la tabla construída

En el código he usado la función wp_remote_get(), esta es una función basada en la función wp_remote_request()

 

Conclusión

Como has podido comprobar, a pesar de existir diferentes formas de leer datos desde una API usando PHP, si estas en el entorno de WordPress puedes usar las propias funciones de WordPress, las cuales te facilitarán la labor de obtener y gestionar recursos de una API externa.

 
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Agregar endpoints a la API REST de WordPressAgregar endpoints a la API REST de WordPress
  • REST API en WordPressCómo usar la REST API de WordPress
  • REST API en WordPressCómo usar la REST API de WordPress
  • Enviar datos PHP a Javascript en WordPressEnviar datos desde PHP a Javascript en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Lazaro

    4 marzo, 2022

    Habrá alguna manera de hacerlo partiendo de un formulario por ejemplo para una autenticación en una api externa. Saludos

    • Jhon Marreros Guzmán

      4 marzo, 2022

      Hola
      Usualmente si es una Api con autenticación se realizará a través de tokens, espero hablar sobre esto en futuros videos.

  2. Erick Reyes

    5 marzo, 2022

    Excelente articulo, pero tengo una duda, como se haria en caso de que la informacion obtenida se muestre en una parte especifica de la pagina y no en toda?

    • Jhon Marreros Guzmán

      7 marzo, 2022

      Hola, podrías crear un Shortcode e insertarlo en donde lo requieras, revisa el siguiente artículo de referencia: https://decodecms.com/shortcode-para-busqueda-en-tabla-personalizada-en-wordpress/
      Saludos.

  3. Deptos

    5 marzo, 2022

    Hola, muchas gracias por tus videos y artículos. Gracias a ellos, estoy aprendiendo muuucho !!!.
    Una consulta: La variable $content es alguna variable reservada de la API de WordPress que toma el contenido existente en la página en cuestión ?. O está definida previamente para poder usarla ?. En definitiva, cómo sé que contiene “el contenido” previo que tenía la página a la cual quiero concatenarle el contenido que ahora estoy llamando de la API externa ?. Espero que entieda mi pregunta. Y desde ya, muchísimas gracias !!!.

    • Jhon Marreros Guzmán

      7 marzo, 2022

      Hola, si, efectivamente $content es un parámetro ya existente que te brinda WordPress. Te sugiero revisar el artículo de Hooks para que entiendas como es que WordPress gestiona el código externo: https://decodecms.com/los-hooks-wordpress-usarlos/
      Saludos.

  4. Victor

    15 marzo, 2022

    Buen articulo, gracias.
    Una pregunta:
    ¿si quisiera rellenar un formulario con los datos extraídos de la api valdría este código?

    • Jhon Marreros Guzmán

      19 marzo, 2022

      Hola Victor, supongo que te refieres a que cuando cargue un formulario los valores que se muestran por defecto o los valores de algunos controles, como los de selección, se llenen con datos de la API, si es posible, ya que sería una lectura de la API pero adaptada para mostrarse como parte de un formulario.

  5. Juan Pablo

    22 mayo, 2022

    Hola Jhon, muchas gracias por compartir tus conocimientos.
    tengo una duda, cómo puedo filtrar los datos, que solo muestre por ejemplo los vinos de solo un país?

    • Jhon Marreros Guzmán

      23 mayo, 2022

      Hola, usualmente los filtros deberían estar a nivel de la propia API, es decir en el código sólo cambiarías la url. Revisa la documentación de la API externa con la que estes trabajando.

  6. Abraham RomeroBernabe

    6 junio, 2022

    Hola bro una pregunta, estoy intentando usar un shortcode para agregar la tabla donde yo quiero pero no entiendo como quedaria la funcion.

    • Jhon Marreros Guzmán

      9 junio, 2022

      Hola revisa este artículo de referencia: https://decodecms.com/shortcode-para-busqueda-en-tabla-personalizada-en-wordpress/

  7. sergio

    11 diciembre, 2022

    Buenas

    He hecho tu ejemplo. no consigo mostrar un hook en una página.

    Un saludo

    • Jhon Marreros Guzmán

      12 diciembre, 2022

      Hola, supongo que te refieres al hook “the_content”, este también debería funcionar en una página. Podrías probar sólo mostrando un mensaje de ejemplo y ver si aparece.

  8. Joaquin

    3 enero, 2023

    Hola, tengo la api de me proveedor de productos y quiero agregarla a mi web cin WordPress con woocomerce como deberia hacer? O por donde deberia investigar para lograr lo que quiero. Muchas gracias

    • Jhon Marreros Guzmán

      3 enero, 2023

      Hola Joaquin. De manera general, lo primero sería leer la documentación de la API, ya que cada una tiene una estructura y políticas diferentes. Luego puedes hacer pruebas de conexión usando un programa como PostMan o Insomnia. Si tus pruebas van bien, entonces ya tienes una idea de cómo conectarte, incluso con esos programas te generan el código de conexión. Luego tendrías que crear un plugin para WooCommerce que use ese código y que tenga un Hook de cron que se ejecute cada X tiempo.

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

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Copias no actualizadas de algunos archivos de plantilla WooCommerce

Sincronizar WooCommerce y Excel

Eliminar campo URL de los comentarios de WordPress

Eliminar el selector de idioma en el acceso a WordPress

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