在将Wordpress升级到软件3.9的最新版本后,我发现了一个错误。
我得到这个错误:
2014年4月17日星期四17:21:52][警告]mod_fcgid:stderr:PHP可捕获致命错误:WP_Post类的对象无法转换为字符串在第455行的/wp-content/plugins/qtranslate/qtranslate_core.php中,引用人:http://www.mywebsite.com/
为什么会发生这种情况?
已解决!!
您必须从最后一行删除qtranslate_core.php
文件中的"$before
",qtranslate在这里与WP 3.9
一起使用!
所以结果必须是:
return strftime($format, $date).$after;
我们将等待qTranslate
升级!
感谢
我想在自己调查完这个问题后再加2美分。我不喜欢破解WP的核心或插件。当我得到这个线程的作者指示的错误时,我通过进入Settings -> Languages
并单击Advanced Settings
选项卡来修复它
在Date / Time Conversion
部分,它被设置为第一个选项Use emulated date function.
,我把它改为Use strftime instead of date.
,瞧,没有更多的错误,也没有黑客攻击核心!
如果这对你有效或你有任何问题,请反馈。
Wordpress:v3.9.1qTranslate:v2.5.39
对我来说(WP 4.1.1,qTranslate 2.5.39)以下帮助:
- 从仪表板中,转到插件>qTranslate>设置
- 单击"高级设置"链接
- 在"日期/时间转换"设置组中,选择"使用strftime而不是日期,并用每种语言的预定义格式替换格式。"(设置为"使用strftime而不是日期")
哇!
不幸的是,以上所有内容都不适用于我,但我找到了另一个解决方案,它帮助我解决了这个问题:
在文件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);