XML-RPC și post_date

8 oct. 2012, 02:26:50
Vizualizări: 1.64K
Voturi: 1

Î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.

3
Comentarii

Oh, am fost acolo de mai multe ori. Dacă apare pe primele 3 pagini de rezultate Google, am încercat-o. Acel șir exact returnează o eroare de formatare invalidă.

curtismchale curtismchale
8 oct. 2012 06:39:29

Cred că pur și simplu îți lipsește o , aici: 'wp.editPost' array între Array și metoda. Ar trebui să activezi mediul de depanare pentru a prinde greșelile de tipar și (și mai bine), să folosești un IDE decent.

kaiser kaiser
8 oct. 2012 11:43:53
Toate răspunsurile la întrebare 1
1

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 
        ) 
    ) 
);
8 oct. 2012 19:46:26
Comentarii

Ups, am ratat câmpul. De fapt l-am avut (sau alt conținut nu s-ar fi actualizat când am comentat data).

curtismchale curtismchale
9 oct. 2012 00:21:45