Publier à distance un article WordPress en PHP
Après Facebook et Twitter, et si on revenait à quelque chose de plus local : WordPress. Aujourd’hui, on va utiliser PHP pour publier à distance un article sur un blog WordPress.
Installation
La librairie utilisée est
hieu-le/wordpress-xmlrpc-client. Le choix s’est fait sur plusieurs points : tests unitaires, documentation et support des standards PSR. Le bonus a été que cette librairie est conseillée par le Codex de WordPress.
L’installation se fera via Composer :
"require": { "hieu-le/wordpress-xmlrpc-client": "2.2" }
Utiliser l’API de WordPress pour créer un article
L’API de WordPress reste assez simple. Elle fonctionne par l’envoi d’une requête HTTP de type POST avec comme contenu une enveloppe XML-RPC.
Pour créer un article, on va utiliser l’API wp.newPost au travers de la classe PHP.
On instancie la classe avec trois paramètres :
- WP_URL correspond à l’URL de votre blog suivi de
xmlrpc.php
; - WP_USER correspond à votre utilisateur ;
- WP_PASS correspond au mot de passe de l’utilisateur.
use \\HieuLe\\WordpressXmlrpcClient\\WordpressClient; $oWordPress = new WordpressClient(WP_URL, WP_USER, WP_PASS);
Après cette instanciation, on appelle la méthode
newPost.
$idPost = $oWordPress->newPost('Title', 'Body', array());
Et voilà, l’article est créé. Rien de plus simple.
Conclusion
De nombreuses autres API existent pour manipuler son blog et permettent d’être manipulé grâce à la librairie de hieu-le.
On peut faire de nombreuses choses comme :
- Récupérer tous les articles et les manipuler (ajout, édition et suppression) ;
- Manipuler la taxonomie (catégories et tags) ;
- Manipuler les fichiers et même, télécharger un fichier ;
- Manipuler les commentaires d’un article ;
- Récupérer les utilisateurs du blog ;
- Modifier son profil.
Toutes les informations se trouvent sur la documentation. Mais d’autres API existent sur le Codex de WordPress si votre blog est hébergé sur WordPress.org.
Cet article Publier à distance un article WordPress en PHP est apparu en premier sur RootsLabs.