J'utilise le support XMLRPC de Wordpress .
Le contenu récupéré via un client XMLRPC ne possède pas les balises <p>
ajoutées automatiquement, contrairement aux pages rendues sur le blog de l'installation Wordpress.
Existe-t-il un moyen simple d’obtenir les balises <p>
en passant par le contenu XMLRPC?
Ainsi, la fonction xmlrpc get_post
par défaut ne contient aucun filtre de Nice. La solution: lancez votre propre rappel XML-RPC!
Accrochez-vous dans xmlrpc_methods
et ajoutez une méthode personnalisée, appelée ici post_autop
. La clé du tableau sera le nom de la méthode et la valeur le rappel de la méthode.
<?php
add_filter( 'xmlrpc_methods', 'wpse44849_xmlrpc_methods' );
/**
* Filters the XMLRPC method to include our own custom method
*/
function wpse44849_xmlrpc_methods( $method )
{
$methods['post_autop'] = 'wpse44849_autop_callback';
return $methods;
}
Ensuite, nous avons notre fonction de rappel, qui recevra un tableau de $args
. Ce qui fera quelques choses simples: connectez-vous à l'utilisateur (validez le nom d'utilisateur/mot de passe), puis récupérez le message que vous voulez, remplacez le texte par une version autop, et renvoyez le message.
<?php
function wpse44849_autop_callback( $args )
{
$post_ID = absint( $args[0] );
$username = $args[1];
$password = $args[2];
$user = wp_authenticate( $username, $password );
// not a valid user name/password? bail.
if( ! $user || is_wp_error( $user ) )
{
return false;
}
$post = get_posts( array( 'p' => $post_ID ) );
// no posts? bail.
if( empty( $post ) )
{
return false;
}
$post = $post[0];
// the magic happens here
$post->post_content = wpautop( $post->post_content );
return (array) $post;
}
Vous pouvez, bien sûr, faire toute la personnalisation que vous voulez à la publication avant de renvoyer la valeur. Voici ce qui précède en tant que plugin .
J'ai utilisé un peu de Python pour tester cela.
>>> import xmlrpclib as xmlrpc
>>> s = xmlrpc.ServerProxy('http://localhost/xmlrpc.php')
>>> post = s.post_autop(1, 'admin', 'password')
>>> post
# content of the post here as a Python dict