Is_wp_error()和处理错误

时间:2011-05-20 作者:VicePrez

我正在尝试构建一个函数,该函数使用wp_remote_get(). 我注意到它经常返回值0.

起初我认为这是一个WordPress错误(由is_wp_error()) 或缺陷wp_remote_get(). 当然错了。。

Feedburner一直在崩溃,所以我使用了第二个瞬态来存储结果(从不0) 有效期为7天。我无法理解的部分是如何处理错误is_wp_error(). 在我将其投入生产之前,我需要强制执行一个错误,以便能够正确地处理它。

下面是一个示例:

$result = wp_remote_get( \'http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=\' . urlencode($username) );

if ( is_wp_error($result) )
    return false;
强制出错的最佳方式是什么?我应该使用new WP_error()?

2 个回复
最合适的回答,由SO网友:Joe Hoyle 整理而成

WordPress可能不一致,因为hen is返回WP_Error 对象及其刚返回的时间falsestring(0) 当实际发生错误时。我不确定feedburner到底返回了什么,以不触发WP_Error 从…起wp_remote_get() - 但如果你知道wp_remote_get() 将返回WP\\u错误,我只需设置$result = new WP_Error( \'my-error\' ); 这就是wp_remote_get() 将在出错时返回。

SO网友:Norcross

为了获取Feedburner统计数据,我一直使用wp_cache_get. 这是一个我成功使用的函数

function get_feedburner_stats() {
  $fbrefreshtime = 43200;  //Refresh Feedburner twice in a day

  $fb = wp_cache_get(\'fbstats_key\');

  if ($fb == false) {
    $yourfeeduri = \'YOUR_FEEDBURNER_USERID\'; 
    $feed = \'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=\'.$yourfeeduri;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $feed);
    $feed = curl_exec($ch); curl_close($ch);
    $xml = new SimpleXMLElement($feed);
    $fb = $xml->feed->entry[\'circulation\']; 

    //Set the Value in Cache
    wp_cache_set(\'fbstats_key\', strval($fb), \'\', $fbrefreshtime);
  }
  return $fb;
} 
要返回值,我使用

<?php echo get_feedburner_stats(); ?>
也就是说,Feedburner是非常不可靠的。我建议做的是构建一个条件,如果数字=0,那么它将返回一个静态数字。

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。