【问题标题】:Wordpress 3.9 - 4.1 and qTranslate issueWordpress 3.9 - 4.1 和 qTranslate 问题
【发布时间】:2014-06-01 23:36:30
【问题描述】:

我在将 Wordpress 升级到软件的最新版本 3.9 后发现了一个错误。

我收到此错误:

2014 年 4 月 17 日星期四 17:21:52] [警告] mod_fcgid: stderr: PHP Catchable 致命错误:WP_Post 类的对象无法转换为字符串 在第 455 行的 /wp-content/plugins/qtranslate/qtranslate_core.php 中, 推荐人:http://www.mywebsite.com/

为什么会这样?

【问题讨论】:

  • 上面提到的代码是什么?如果您在这里没有任何运气,请尝试wordpress.stackexchange.com,它可能更适合任何与 wordpress 相关的开发问题。
  • 为什么不向插件作者提交错误?很明显,问题在于插件不适用于 3.9。也许等待他们的修复?
  • @DanFromGermany 我不知道网站 wordpress.stackexchange.com ...不过谢谢

标签: php wordpress qtranslate


【解决方案1】:

对我来说(WP 4.1.1,qTranslate 2.5.39)以下帮助:

  1. 从仪表板转到插件 > qTranslate > 设置
  2. 点击“高级设置”链接
  3. 在“日期/时间转换”设置组中选择“使用 strftime 代替日期并将格式替换为每种语言的预定义格式”。 (设置为“使用 strftime 代替日期”)。

瞧!

【讨论】:

    【解决方案2】:

    不幸的是,以上所有方法都对我不起作用,但我 found another solution 帮助我解决了这个问题:

    在文件 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);
    

    【讨论】:

      【解决方案3】:

      我想在自己调查这个问题后加我的 2 美分。我不喜欢破解 WP 的核心或插件。当我收到这个帖子的作者指出的错误时,我通过进入Settings -> Languages 并单击Advanced Settings 选项卡来修复它。

      Date / Time Conversion 部分下,它被设置为第一个选项Use emulated date function.,我将其更改为Use strftime instead of date.,瞧,没有更多错误,也没有破解核心!

      如果这对您有用或您有任何问题,请报告。

      WordPress:v3.9.1 qTranslate:v2.5.39

      【讨论】:

      • 不幸的是,这对我不起作用。我尝试了所有选项,但不得不求助于黑客
      • 有趣!对于科学,您如何称呼违规页面中的日期?我只在显示日期时遇到了这个错误。我正在使用<?php print get_the_date(); ?>
      • 感谢您提供出色的解决方案,这在我的情况下非常有效。页面编辑不起作用。
      • 因此,我也无法在编辑页面上编辑永久链接。有什么帮助吗?
      【解决方案4】:

      解决了!!

      您必须删除“$before”。在最后一行的qtranslate_core.php 文件中,qtranslate 在这里与WP 3.9 一起使用!

      所以结果必须是:

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

      我们将等待qTranslate 升级!

      谢谢

      【讨论】:

      • 在我的插件上,它是qtrans_strftime函数的最后一行。
      • return $before.strftime($format, $date).$after; => return strftime($format, $date).$after;
      • 也适用于 4.1.1。
      • 不错。也适用于 4.4.1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多