J'essaie de définir le post_date via XML-RPC et continue à recevoir une erreur en disant que le XML n'est pas formaté correctement. Le code va quelque chose comme:
$post = get_post( $post_id );
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pw,
array(
'post_date' => $post->post_date
)
)
);
J'ai le même problème avec wp.newPost
. Je sais que la date doit être au format ISO8601, mais je n’ai aucune chance de l’avoir correctement formatée.
Il y a quelques problèmes ici. Tout d'abord, wp.editPost
prend un quatrième paramètre avant la structure de contenu -> l'ID de la publication que vous essayez de modifier (il doit s'agir d'un entier).
Deuxièmement, vous transmettez une chaîne pour le post_date
. Le client la convertit automatiquement en une balise <string>
avant de l'envoyer au serveur ... malheureusement, le serveur attend une balise <dateTime.iso8601>
.
Vous pouvez résoudre ce problème en analysant la chaîne date et en transmettant à la place une instance de la classe IXR_Date
. Le client l'analysera correctement et le serveur réagira de manière appropriée. J'ai testé le scénario suivant sur mon propre serveur:
$date = new IXR_Date( strtotime( $post->post_date ) ); // Parse the date to an IXR_Date object.
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pwd,
$post_id,
array(
'post_date' => $date
)
)
);