Seguro te encontraste en algún momento automatizando un proceso, y quisiste saber como subir las imágenes a WordPress con uso de sus API aquí te explico rápidamente como hacerlo.
Sube Imágenes a wordpress por Api
Api V2 Media
Wordpress nos permite conectarnos a la información mediante el uso de su api, con esto
podemos manipular datos, leer información de post, imágenes y mucho más podemos ver a detalle
en la documentación de WordPress Rest Api.
Ahora enfoquemonos la librería media que nos muestra la documentación:
Para realizar la prueba de esta api necesitamos la url de nuestro sitio web
si estamos en local usamos 127.0.0.1 o localhost o si tenemos nuestro sitio público sería:
nombre_sitio/wp-json/wp/v2/media
Probemos desde postman consumir este sitio
En el ejemplo vemos que si realizamos una petición GET nos devuelve la información de los archivos
que tenemos en nuestro wordpress, como el tipo de imagen, el lugar donde está almacenada, tamaños, y mucho más.
Ahora a esa misma url vamos a hacerle una petición tipo POST para cargar una imagen.
Media Upload
Para realizar la petición POST necesitamos algunos parámetros para poder tener acceso, en este caso podemos
realizar una prueba solo cambiando el tipo de petición de GET por POST y tenemos:
Los parámetros requeridos son:
Autenticación: es necesario que primero podamos autenticarnos en el request, para esto se puede realizar
utilizando una autorización básica o por OAuth o por JWT, podemos ayudarnos de diferentes plugins para esto.
En nuestro caso utilizaremos la autenticación básica para esto podemos desde POSTMAN utilizar la opción autenticació
básica:
Ahí bastaría con agregar usuario y contraseña de nuestro WordPress, claro primero verificar que el usuarios a utilizar
tenga los permisos necesarios para poder conectarse.
Luego de realizado este paso si te presenta un mensaje como el siguiente:
Sorry, you are not allowed to create posts as this use con estado 401 entonces necesitamos utilizar el siguiente
plugin que nos permite aceptar la autenticación Básica en nuestro WordPress.
Toma en cuenta que el uso de este plugin no es recomendado si no usas SSL en ese caso mejor utilizar OAuth, mas que nada por que las claves de acceso estarán en las peticiones, bueno esto depende mucho donde se esté utilizando este código.
Nos descargamos como .zip y lo descomprimimos en la carpeta de plugin, seguido de esto procedemos a activarle, en este caso el plugin lo que hace es utilizar 2 Hooks, que permite aceptar la autenticación y con esto el api ya puede responder a una petición POST.
Antes de realizar cambios en tu wordpress no olvides sacar el respaldo de tu sitio y tu base de datos.
Subimos el archivo y lo descomprimimos en nuestro servidor, luego de esto vamos a nuestro administrador y habilitamos el plugin.
Listo con esto realizamos nuevamente la petición y la respuesta que tenemos es distinta.
Ahora completemos los Headers, dos partes importantes tenemos aquí la una es el Content-Type y el Content-Disposition, los vamos a agregar como se muestra en la siguiente figura, en filename llenaremos el nombre con el que la imagen subirá al servidor.
Ahora revisemos el Body del Request vamos a seleccionar tipo Binary, aquí decimos a Postman que nos procese la imagen en Binario para luego subirle es importante este tipo porque así acepta los datos WordPress.
Como vemos en la imagen anterior el servicio nos responde con un JSON con la estructura de la nueva imagen que fue subida, aquí podemos obtener características como el ID, la url que usa la imagen para mostrarse dentro de guid – rendered y mucha información más.
De esta manera ya tenemos funcionando desde POSTMAN la subida de imágenes por API a nuestro sitio WordPress, si tienes dudas puedes contactarnos estaremos gustosos de ayudarte.