Skip to content

Commit 3ec52a0

Browse files
committed
Ensure SimplePie is initialized fully.
1 parent 44047d3 commit 3ec52a0

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/wp-includes/feed.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,9 @@ function fetch_feed( $url ) {
805805
if ( ! class_exists( 'SimplePie\SimplePie', false ) ) {
806806
require_once ABSPATH . WPINC . '/class-simplepie.php';
807807
}
808+
require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php';
809+
require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php';
810+
require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php';
808811

809812
if ( is_array( $url ) && count( $url ) <= 1 ) {
810813
$url = array_shift( $url );
@@ -816,15 +819,22 @@ function fetch_feed( $url ) {
816819
$items = SimplePie\SimplePie::merge_items( $feeds );
817820

818821
$feed = new SimplePie\SimplePie();
822+
$feed->get_registry()->register( SimplePie\Sanitize::class, 'WP_SimplePie_Sanitize_KSES', true );
823+
$feed->sanitize = new WP_SimplePie_Sanitize_KSES();
824+
if ( method_exists( 'SimplePie_Cache', 'register' ) ) {
825+
SimplePie_Cache::register( 'wp_transient', 'WP_Feed_Cache_Transient' );
826+
$feed->set_cache_location( 'wp_transient' );
827+
} else {
828+
// Back-compat for SimplePie 1.2.x.
829+
require_once ABSPATH . WPINC . '/class-wp-feed-cache.php';
830+
$feed->set_cache_class( 'WP_Feed_Cache' );
831+
}
832+
$feed->get_registry()->register( SimplePie\File::class, 'WP_SimplePie_File', true );
819833
$feed->init();
820834
$feed->data['items'] = $items;
821835
return $feed;
822836
}
823837

824-
require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php';
825-
require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php';
826-
require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php';
827-
828838
$feed = new SimplePie\SimplePie();
829839

830840
$feed->get_registry()->register( SimplePie\Sanitize::class, 'WP_SimplePie_Sanitize_KSES', true );

0 commit comments

Comments
 (0)