placement of wp_error with fetch_feed

Follow $rss = fetch_feed('' . $instance["feed_address"] . ''); and find the function in wp-includes/feed.php:

/**
 * Build SimplePie object based on RSS or Atom feed from URL.
 *
 * @since 2.8
 *
 * @param string $url URL to retrieve feed
 * @return WP_Error|SimplePie WP_Error object on failure or SimplePie object on success
 */
function fetch_feed($url) {
    require_once (ABSPATH . WPINC . '/class-feed.php');

    $feed = new SimplePie();
    $feed->set_feed_url($url);
    $feed->set_cache_class('WP_Feed_Cache');
    $feed->set_file_class('WP_SimplePie_File');
    $feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200, $url));
    do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
    $feed->init();
    $feed->handle_content_type();

    if ( $feed->error() )
        return new WP_Error('simplepie-error', $feed->error());

    return $feed;
}

As you can see, fetch_feed() may return a WP_Error object. So check it just below the call to this function:

$rss = fetch_feed('' . $instance["feed_address"] . '');

if ( is_wp_error( $rss ) )
{
    // do something awesome
}
else
{
    // print your feed items
    // $maxitems = …
}

Leave a Comment