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);