未定义的方法 - 致命错误

时间:2012-10-11 21:49:06

标签: php wordpress

我的网站一夜之间决定产生以下错误:

  

致命错误:调用未定义的方法WP_Error :: get_items()   第494行/home/xxx/public_html/wp-content/themes/xxx/functions.php

错误会破坏推送源,停止页面呈现的其余部分。我没有为这个网站实现代码,但令人不安的代码似乎是:

function twitterify($ret) {

$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $ret);
$ret = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $ret);
return $ret;
}

已从this website拉出。

关于如何解决这个问题的任何想法?我听说Twitter已经改变了他们的API,这可能是问题吗?

1 个答案:

答案 0 :(得分:1)

这似乎与RSS fetch_feed()函数有关。当fetch_feed()成功时,它返回一个具有get_items()方法的SimplePie类。 但是,如果fetch_feed失败,它会返回一个WP_Error类,它没有get_items()方法,现在你正在调用一个未定义的函数。

这可能如下所示:

$rss = fetch_feed($url);
$rss->get_items();

在这个例子中,如果fetch_feed()函数失败,$ rss将是一个WP_Error类...