XML-RPC e post_date

8 ott 2012, 02:26:50
Visualizzazioni: 1.64K
Voti: 1

Sto cercando di impostare il post_date via XML-RPC ma continuo a ricevere un errore che dice che l'XML non è formattato correttamente. Il codice è qualcosa del genere:

$post = get_post( $post_id );

$response = $client->query( 
    'wp.editPost',
    array( 
        0, 
        $user, 
        $pw, 
        array( 
            'post_date' => $post->post_date 
        ) 
    ) 
);

Ho lo stesso problema con wp.newPost. So che la data dovrebbe essere formattata in ISO8601 ma non riesco a formattarla correttamente.

3
Commenti

Oh ci sono passato più volte. Se è nelle prime 3 pagine dei risultati di Google, l'ho già provato. Quella stringa esatta restituisce un problema di formattazione non valida.

curtismchale curtismchale
8 ott 2012 06:39:29

Immagino che ti manchi semplicemente una , qui: 'wp.editPost' array tra l'Array e il metodo. Dovresti attivare l'ambiente di debug per individuare errori di battitura e (ancora meglio) usare un IDE decente.

kaiser kaiser
8 ott 2012 11:43:53
Tutte le risposte alla domanda 1
1

Ci sono un paio di problemi qui. Prima di tutto, wp.editPost accetta un quarto parametro prima della struttura del contenuto -> l'ID del post che si sta cercando di modificare (dovrebbe essere un intero).

Secondo, stai passando una stringa per post_date, quindi il client la converte automaticamente in un tag <string> prima di inviarla al server... sfortunatamente, il server si aspetta un tag <dateTime.iso8601>.

Puoi risolvere questo problema analizzando la data come stringa e passando un'istanza della classe IXR_Date invece. Il client la analizzerà correttamente e il server reagirà in modo appropriato. Ho testato il seguente scenario sul mio server:

$date = new IXR_Date( strtotime( $post->post_date ) );  // Analizza la data in un oggetto IXR_Date.

$response = $client->query( 
    'wp.editPost',
    array( 
        0, 
        $user, 
        $pwd,
        $post_id,
        array( 
            'post_date' => $date 
        ) 
    ) 
);
8 ott 2012 19:46:26
Commenti

Ops per il campo mancante. In realtà ce l'avevo (altrimenti gli altri contenuti non si sarebbero aggiornati quando avevo commentato la data).

curtismchale curtismchale
9 ott 2012 00:21:45