XML-RPC și post_date
Încerc să setez post_date prin XML-RPC și primesc în continuare o eroare care spune că XML-ul nu este formatat corect. Codul arată cam așa:
$post = get_post( $post_id );
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pw,
array(
'post_date' => $post->post_date
)
)
);
Am aceeași problemă și cu wp.newPost
. Știu că data ar trebui să fie formatată ISO8601 dar pur și simplu nu reușesc să o format corect.
Sunt câteva probleme aici. În primul rând, wp.editPost
acceptă un al patrulea parametru înainte de structura de conținut -> ID-ul postării pe care încerci să o editezi (ar trebui să fie un întreg).
În al doilea rând, transmiți un șir de caractere pentru post_date
, așa că clientul convertește automat acest lucru într-un tag <string>
înainte de a-l trimite la server... din păcate, serverul așteaptă un tag <dateTime.iso8601>
.
Poți rezolva acest lucru prin parsarea datei sub formă de șir și transmiterea unei instanțe a clasei IXR_Date
. Clientul o va interpreta corect, iar serverul va reacționa în mod adecvat. Am testat următorul scenariu pe propriul meu server:
$date = new IXR_Date( strtotime( $post->post_date ) ); // Parsează data într-un obiect IXR_Date.
$response = $client->query(
'wp.editPost',
array(
0,
$user,
$pwd,
$post_id,
array(
'post_date' => $date
)
)
);
