787 function fetch_feed( $url ) { |
787 function fetch_feed( $url ) { |
788 if ( ! class_exists( 'SimplePie', false ) ) { |
788 if ( ! class_exists( 'SimplePie', false ) ) { |
789 require_once ABSPATH . WPINC . '/class-simplepie.php'; |
789 require_once ABSPATH . WPINC . '/class-simplepie.php'; |
790 } |
790 } |
791 |
791 |
792 require_once ABSPATH . WPINC . '/class-wp-feed-cache.php'; |
|
793 require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php'; |
792 require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php'; |
794 require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php'; |
793 require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php'; |
795 require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php'; |
794 require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php'; |
796 |
795 |
797 $feed = new SimplePie(); |
796 $feed = new SimplePie(); |
798 |
797 |
799 $feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' ); |
798 $feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' ); |
800 // We must manually overwrite $feed->sanitize because SimplePie's |
799 // We must manually overwrite $feed->sanitize because SimplePie's constructor |
801 // constructor sets it before we have a chance to set the sanitization class. |
800 // sets it before we have a chance to set the sanitization class. |
802 $feed->sanitize = new WP_SimplePie_Sanitize_KSES(); |
801 $feed->sanitize = new WP_SimplePie_Sanitize_KSES(); |
803 |
802 |
804 $feed->set_cache_class( 'WP_Feed_Cache' ); |
803 // Register the cache handler using the recommended method for SimplePie 1.3 or later. |
|
804 if ( method_exists( 'SimplePie_Cache', 'register' ) ) { |
|
805 SimplePie_Cache::register( 'wp_transient', 'WP_Feed_Cache_Transient' ); |
|
806 $feed->set_cache_location( 'wp_transient' ); |
|
807 } else { |
|
808 // Back-compat for SimplePie 1.2.x. |
|
809 require_once ABSPATH . WPINC . '/class-wp-feed-cache.php'; |
|
810 $feed->set_cache_class( 'WP_Feed_Cache' ); |
|
811 } |
|
812 |
805 $feed->set_file_class( 'WP_SimplePie_File' ); |
813 $feed->set_file_class( 'WP_SimplePie_File' ); |
806 |
814 |
807 $feed->set_feed_url( $url ); |
815 $feed->set_feed_url( $url ); |
808 /** This filter is documented in wp-includes/class-wp-feed-cache-transient.php */ |
816 /** This filter is documented in wp-includes/class-wp-feed-cache-transient.php */ |
809 $feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) ); |
817 $feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) ); |