WordPress, Php et XML rpc – how-to. Explication
WordPress est un outil formidable. Il offre la possibilité d’envoyer des articles à distance.
Pour ce faire, entre autres, les développeurs ont crée une page qu’il faut appeler en lui passant les paramètres adéquats.
Cette page est située à la racine de l’installation de votre site WordPress. Par exemple si vous avez installé WordPress sur http://monsite.com/wordpress/
, il faudra appeler la page http://monsite.com/wordpress/xmlrpc.php
Passons maintenant aux choses sérieuses : comment automatiser un envoi d’articles en php ?
C’est extrêmement simple. Je vous donne les indices, et à partir de là, à vous de finir de développer afin d’atteindre votre objectif.
Première chose : il faut que le PC qui doit envoyer les articles ait Php d’installé, avec le support XML rpc. Dit autrement, il faut qu’il soit compilé avec l’option --with-xmlrpc
, ce qui n’est pas le cas par défaut. A vous de vous débrouiller tout seul pour arriver à activer l’option. Si vous êtes sous Linux, et que vous avez tout compilé à la main, comme un bon guerrier que vous êtes, il vous suffit d’afficher une page qui éxecute "phpinfo();"
et Php vous affichera la ligne de compilation, il vous suffira de recompiler avec l’option --with-xmlrpc
.
Une fois cette tâche terminée, il vous faudra activer sur le site WordPress concerné, l’option XML rpc. Il faut se connecter en tant qu’administrateur, aller dans le menu Réglagles » Ecriture » Publication à distance et cocher l’option XML-RPC.
Enfin on y arrive, le code qui se connecte et envoie quelque chose !
1 <?php 2 /* Exemple WordPress, Php et XML rpc */ 3 4 $request = 5 xmlrpc_encode_request( 6 "wp.getUsersBlogs", 7 array("nom_d_utilisateur", "mot_de_passe") 8 ); 9 $context = 10 stream_context_create(array('http' => array( 11 'method' => "POST", 12 'header' => "Content-Type: text/xml", 13 'content' => $request 14 ))); 15 $file = file_get_contents( 16 "http://monsite.com/wordpress/xmlrpc.php", false, 17 $context); 18 19 $response = xmlrpc_decode($file); 20 21 if ($response && xmlrpc_is_fault($response)) { 22 print(utf8_encode( 23 "xmlrpc: $response[faultString] ($response[faultCode])" 24 )); 25 } else { 26 print_r($response); 27 } 28 ?>
Donc là vous avez le code.
Pour terminer, toutes les fonctions disponibles sont ici : http://codex.wordpress.org/XML-RPC_wp.
Elles ne semblent pas trop à jour, alors si vous voulez la liste réelle, regardez votre dans le blog, le fichier ./wp-includes/class-wp-xmlrpc-server.php
, la fonction wp_xmlrpc_server()
.
Vous y verrez toutes les fonctions que vous pourrez appeler en XML RPC.
C’est tout de même bien mieux de se faire son outil qui fait les envois d’articles à distance, plutôt que d’en acheter un, non 🙂 ?