Wordpress 3.9 - 4.1 и qTranslate

Я нашел ошибку после обновления Wordpress до последней версии программного обеспечения 3.9.

Я получаю эту ошибку:

Thu Apr 17 17:21:52 2014] [warn] mod_fcgid: stderr: PHP Catchable фатальная ошибка: объект класса WP_Post не может быть преобразован в строку в /wp -content/plugins/qtranslate/qtranslate_core.php в строке 455, referar: http://www.mywebsite.com/

Зачем это происходит?

Ответ 1

решаемые!!

Вам нужно удалить "$before". в файле qtranslate_core.php из последней строки, qtranslate работает здесь с WP 3.9!

поэтому результат должен быть:

return strftime($format, $date).$after;

Мы будем ждать обновления qTranslate!

спасибо

Ответ 2

Я хотел добавить свои 2 цента после изучения этой проблемы самостоятельно. Мне не нравится когда-либо взламывать ядро ​​WP или плагинов. Когда я получил ошибку, указанную автором этого потока, я исправил ее, перейдя в Settings -> Languages и нажав вкладку Advanced Settings.

В разделе Date / Time Conversion он был настроен на первый вариант Use emulated date function., я изменил его на Use strftime instead of date. и voila, больше не ошибся и не взломал ядро!

Сообщить, если это сработало для вас или возникли проблемы.

Wordpress: v3.9.1 qTranslate: v2.5.39

Ответ 3

Для меня (WP 4.1.1, qTranslate 2.5.39) следующее помогло:

  • На панели инструментов перейдите в раздел Плагины > qTranslate > Настройки
  • Нажмите ссылку "Дополнительные настройки"
  • В группе настроек "Дата/время" выберите "Использовать strftime вместо даты и замените форматы с предопределенными форматами для каждого языка". (было установлено значение "Использовать strftime вместо даты" ).

Voila!

Ответ 4

К сожалению, все выше не работало для меня, но я нашел другое решение, которое помогло мне решить эту проблему:

в файле qtranslate_core.php вы должны изменить эту строку

function qtrans_dateFromPostForCurrentLanguage($old_date, $format ='', $before = '', $after = '') {

к

function qtrans_dateFromPostForCurrentLanguage($old_date, $format ='') {

и эта строка

return qtrans_strftime(qtrans_convertDateFormat($format), mysql2date('U',$post->post_date), $old_date, $before, $after);

к

return qtrans_strftime(qtrans_convertDateFormat($format), mysql2date('U',$post->post_date), $old_date);