WordPress WP_Post could not be converted to string in qtranslate_core 455

Ieri sera un cliente mi ha scritto segnalandomi un errore sul suo portale web:

PHP Catchable fatal error: Object of class WP_Post could not be converted to string in ../wp-content/plugins/qtranslate/qtranslate_core.php on line 455

 

Ecco di seguito la soluzione: aprite il file wp-content/plugins/qtranslate/qtranslate_core.php in un editor di testo (come notepad++), dopodichè andate alla riga 458 e modificate la funzione qtrans_dateFromPostForCurrentLanguage così:

 

function qtrans_dateFromPostForCurrentLanguage($old_date, $format ='') {
  
  global $post;
  return qtrans_strftime(qtrans_convertDateFormat($format), mysql2date('U',$post->post_date), $old_date);

}

 

Cos’è successo?

L’errore è causato da un aggiornamento della funzione get_the_date che ora accetta il parametro (opzionale) $post. Qtranslate, invece, nella funzione qtrans_dateFromPostForCurrentLanguage accetta un solo parametro. Quindi la soluzione è quella di eliminare i due parametri.

Grazie ad Alexander per aver analizzato e risolto il problema 🙂

 

Considerazioni finali

Spesso e volentieri mi son sentito dire, sia dai sistemisti che gestiscono le piattaforme hosting sia da espertoni su community/gruppi WordPress di “aggiornare sempre all’ultima versione”. La mia esperienza dice sì che bisogna stare attenti alla versione di WP e dei vari plugin installata, ma proprio in funzione della particolare configurazione del tuo sito web non cliccare “aggiorna ora” a prescindere, analizza, assicurati che non vi siano conflitti tra la versione di WordPress e quella dei plugin installati e solo dopo scegli quale sia l’azione più giusta per te!