fetch_feed( mixed $url )
Build SimplePie object based on RSS or Atom feed from URL.
Description Description
Parameters Parameters
- $url
-
(mixed) (Required) URL of feed to retrieve. If an array of URLs, the feeds are merged using SimplePie's multifeed feature. See also http://simplepie.org/wiki/faq/typical_multifeed_gotchas
Return Return
(WP_Error|SimplePie) WP_Error object on failure or SimplePie object on success
Source Source
File: wp-includes/feed.php
684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 | function fetch_feed( $url ) { if ( ! class_exists ( 'SimplePie' , false ) ) { require_once ( ABSPATH . WPINC . '/class-simplepie.php' ); } require_once ( ABSPATH . WPINC . '/class-wp-feed-cache.php' ); require_once ( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' ); require_once ( ABSPATH . WPINC . '/class-wp-simplepie-file.php' ); require_once ( ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php' ); $feed = new SimplePie(); $feed ->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' ); // We must manually overwrite $feed->sanitize because SimplePie's // constructor sets it before we have a chance to set the sanitization class $feed ->sanitize = new WP_SimplePie_Sanitize_KSES(); $feed ->set_cache_class( 'WP_Feed_Cache' ); $feed ->set_file_class( 'WP_SimplePie_File' ); $feed ->set_feed_url( $url ); /** This filter is documented in wp-includes/class-wp-feed-cache-transient.php */ $feed ->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime' , 12 * HOUR_IN_SECONDS, $url ) ); /** * Fires just before processing the SimplePie feed object. * * @since 3.0.0 * * @param object $feed SimplePie feed object (passed by reference). * @param mixed $url URL of feed to retrieve. If an array of URLs, the feeds are merged. */ do_action_ref_array( 'wp_feed_options' , array ( & $feed , $url ) ); $feed ->init(); $feed ->set_output_encoding( get_option( 'blog_charset' ) ); if ( $feed ->error() ) { return new WP_Error( 'simplepie-error' , $feed ->error() ); } return $feed ; } |
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.8.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example
This example will retrieve and display a list of links for an existing RSS feed, limiting the selection to the five most recent items:
<h2><?php _e(
'Recent news from Some-Other Blog:'
,
'wpdocs_textdomain'
); ?></h2>
<?php
// Get RSS Feed(s)
include_once
( ABSPATH . WPINC .
'/feed.php'
);
// Get a SimplePie feed object from the specified feed source.
$rss
= fetch_feed(
'http://example.com/rss/feed/goes/here'
);
$maxitems
= 0;
if
( ! is_wp_error(
$rss
) ) :
// Checks that the object is created correctly
// Figure out how many total items there are, but limit it to 5.
$maxitems
=
$rss
->get_item_quantity( 5 );
// Build an array of all the items, starting with element 0 (first element).
$rss_items
=
$rss
->get_items( 0,
$maxitems
);
endif
;
?>
<ul>
<?php
if
(
$maxitems
== 0 ) : ?>
<li><?php _e(
'No items'
,
'wpdocs_textdomain'
); ?></li>
<?php
else
: ?>
<?php
// Loop through each feed item and display each item as a hyperlink. ?>
<?php
foreach
(
$rss_items
as
$item
) : ?>
<li>
<a href=
"<?php echo esc_url( $item->get_permalink() ); ?>"
title=
"<?php printf( __( 'Posted %s', 'wpdocs_textdomain' ), $item->get_date('j F Y | g:i a') ); ?>"
>
<?php
echo
esc_html(
$item
->get_title() ); ?>
</a>
</li>
<?php
endforeach
; ?>
<?php
endif
; ?>
</ul>
Expand full source codeCollapse full source code