mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-03 06:57:35 +01:00
Stabilize how WordPress hooks into SimplePie to implement transient caching.
Since a plugin can load a previous (< 1.3) version of SimplePie before we do, we need to be compatible with our old method of overriding SimplePie_Cache::create(). SimplePie_Cache::create() was converted to static in 1.3 (as it was called), requiring that we create two different definitions of WP_Feed_Cache (extends SimplePie_Cache). Instead, we can use 1.3's new object registry, and leave the old WP_Feed_Cache to SimplePie 1.2 versions. see #21183. git-svn-id: http://core.svn.wordpress.org/trunk@21652 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
52b3f498e6
commit
f1aaf6d359
@ -3,17 +3,21 @@
|
|||||||
if ( !class_exists('SimplePie') )
|
if ( !class_exists('SimplePie') )
|
||||||
require_once (ABSPATH . WPINC . '/class-simplepie.php');
|
require_once (ABSPATH . WPINC . '/class-simplepie.php');
|
||||||
|
|
||||||
class WP_Feed_Cache extends SimplePie_Cache {
|
if ( version_compare( SIMPLEPIE_VERSION, '1.3-dev', '>' ) ) :
|
||||||
/**
|
SimplePie_Cache::register( 'wp-transient', 'WP_Feed_Cache_Transient' );
|
||||||
* Create a new SimplePie_Cache object
|
else :
|
||||||
*
|
class WP_Feed_Cache extends SimplePie_Cache {
|
||||||
* @static
|
/**
|
||||||
* @access public
|
* Create a new SimplePie_Cache object
|
||||||
*/
|
*
|
||||||
public static function create($location, $filename, $extension) {
|
* @static
|
||||||
return new WP_Feed_Cache_Transient($location, $filename, $extension);
|
* @access public
|
||||||
|
*/
|
||||||
|
function create($location, $filename, $extension) {
|
||||||
|
return new WP_Feed_Cache_Transient($location, $filename, $extension);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
endif;
|
||||||
|
|
||||||
class WP_Feed_Cache_Transient {
|
class WP_Feed_Cache_Transient {
|
||||||
var $name;
|
var $name;
|
||||||
|
@ -532,9 +532,17 @@ function fetch_feed($url) {
|
|||||||
require_once (ABSPATH . WPINC . '/class-feed.php');
|
require_once (ABSPATH . WPINC . '/class-feed.php');
|
||||||
|
|
||||||
$feed = new SimplePie();
|
$feed = new SimplePie();
|
||||||
|
|
||||||
|
if ( version_compare( SIMPLEPIE_VERSION, '1.3-dev', '>' ) ) {
|
||||||
|
$feed->set_cache_location( 'wp-transient' );
|
||||||
|
$feed->registry->register( 'Cache', 'WP_Feed_Cache_Transient' );
|
||||||
|
$feed->registry->register( 'File', 'WP_SimplePie_File' );
|
||||||
|
} else {
|
||||||
|
$feed->set_cache_class( 'WP_Feed_Cache' );
|
||||||
|
$feed->set_file_class( 'WP_SimplePie_File' );
|
||||||
|
}
|
||||||
|
|
||||||
$feed->set_feed_url($url);
|
$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));
|
$feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200, $url));
|
||||||
do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
|
do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
|
||||||
$feed->init();
|
$feed->init();
|
||||||
|
Loading…
Reference in New Issue
Block a user