bug in wordpress xmlrpc (createDate)

 

ho (ri)scoperto un bug su wordpress che si manifesta quando si tenta di inviare un post da un blog ad un altro a mezzo del metodo metaWeblog.newPost. Se il blog di destinazione è wordpress ci si trova in difficoltà con il campo "data" del post.

Se si cerca di modificare la data del post si ottiene sempre un errore in ritorno. Il bug è nel file xmlrpc.php ed è presente anche nella attuale versione di WP 2.6.2

if ( !empty( $content_struct['date_created_gmt'] ) )
$dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']->getIso() ) . 'Z';
// We know this is supposed to be GMT, so we're going to slap that Z on there by force elseif ( !empty( $content_struct['dateCreated']) )
$dateCreated = $content_struct['dateCreated']->getIso();

$content_struct['dateCreated'] e $content_struct['date_created_gmt'] sono due stringhe non 2 oggetti.
Pertanto è impossibile applicare loro un metodo e questo causa l'errore di ritorno.

Sfortunatamente tra i vari metodi consentiti metaWeblog.newPost è l'unico che consente di modificare la data del post ... quindi ciccia.

La cosa "divertente" è che questo bug era gia stato scoperto da Jonathan http://www.franzone.com/2007/07/30/wordpress-xml-rpc-patch-for-metweblog-newpost-method/ piu di un anno fa.
Aveva pure fatto una patch.

Quello che invece noto è che il codice di xmlrpc.php è cambiato da allora, ma il baco è rimasto .....

ho aperto un bug su WP e un post nel forum di WP http://wordpress.org/support/topic/207068

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
1 + 2 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.