Hola a todos! les dejo un ejemplo que arme en Laravel que consume el API de WordPress, quizás inspire a alguno que quiera construir aplicaciones Laravel y Wordpress, si bien es muy sencillo y solo hace CRUD sobre los post, sirve como ejemplo para que puedas seguir ampliándolo como más te guste.
Les dejo el link de mi repo en GitHub de donde pueden descargar el proyecto.
saludos!!
Miguel
APP Laravel 5.6 - WordPress CRUD usando el API-REST v2
Aplicación Laravel que realiza las operaciones básicas de CRUD (Create - Read - Update - Delete) sobre los posts de cualquier sitio WordPress, utilizando el WP REST API v2
- composer.json
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "~6.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "^1.0"
NOTA: Se requiere que tenga instalado y habilitado en su sitio Wordpress el siguiente complemento para poder autenticarse y ejecutar peticiones [ POST/DELETE ]
Basic Authentication handler
Este complemento agrega Autenticación básica a un sitio de WordPress.
Importante:
Tener en cuenta que este complemento requiere el envío de su nombre de usuario y contraseña con cada
solicitud, y solo debe usarse a través de conexiones con seguridad SSL o para
desarrollo y prueba. Sin SSL, recomiendo utilizar
[OAuth versión 1 o 2 ] -OAuth1 controlador de autenticación en entornos de producción.
Instalación
- Descargue e instale el plugin en el directorio /wp-content/plugins de su sitio wordpress
-
Habilitar el plugin desde administrador de Wordpress y activalo.
-
Instala las dependencias del proyecto Laravel, ejecutando:
npm install
composer install
Ejecución
Por último, accede al directorio del proyecto laravel y ejecuta el server de desarrollo desde la consola con el comando "php artisan serve"
blog git:(master) ✗ php artisan serve
Aprende más sobre GuzzleHttp\Client
La aplicación requiere del cliente GuzzleHttp para que funcione correctamente y pueda conectarse al sitio Wordpress.
Aquí te dejo el link para su descarga y documentación, pero no es necesario que la instales ya que al descargar las dependencias del proyecto el mismo se instalará automáticamente.
composer require guzzlehttp/guzzle:~6.0
Modo de Uso
- Por default los usuarios WordPress Administrador/Autor/Editor tienen permisos de escritura.
- Por default los usuarios WordPress Colaborador/Suscriptor solo tienen permisos de lectura.
- Importante: las peticiones GET no requiere user/pass solo peticiones de tipo POST y DELETE
Configure el usuario, password y la URL del sitio Wordpress al que desea conectarse en el controlador BlogController.php
IMPORTEATE: Tanto el usuario como el password son encriptados con base64_encode antes del envío de la solicitud en el header de la petición.
- Path: app/Http/Controllers/BlogController.php
protected $base_uri = 'http://wordpress.localhost'; // URL base del sitio
protected $username = 'wpadmin'; // username de wordpress
protected $password = 'wpadmin'; // password de wordpress
Nota:
En el ejemplo uso el usuario wpadmin que tiene permisos de read/write si quieres pueden cambiarlo por otro que sea de tipo Suscriptor y solo permisos de read.
Screenshots
Instalar Plugin WordPress
Plugin WordPress
Index
New
Edit
Error / usuario sin permisos de escritura
Lista de post
Editar Post
License
The Laravel framework is open-sourced software licensed under the MIT license.