Wordpress 3.5
[autoinstalls/wordpress.git] / wp-includes / feed.php
index 988f6b22c6505aa02761653112e7bbb1e69cb010..61825f8958d67a1dc2ab2a6f8d01ddfbf66df12f 100644 (file)
@@ -140,6 +140,7 @@ function the_title_rss() {
  * @see get_the_content()
  *
  * @param string $feed_type The type of feed. rss2 | atom | rss | rdf
+ * @return string The filtered content.
  */
 function get_the_content_feed($feed_type = null) {
        if ( !$feed_type )
@@ -487,12 +488,7 @@ function prep_atom_text_construct($data) {
  */
 function self_link() {
        $host = @parse_url(home_url());
-       $host = $host['host'];
-       echo esc_url(
-               ( is_ssl() ? 'https' : 'http' ) . '://'
-               . $host
-               . stripslashes($_SERVER['REQUEST_URI'])
-               );
+       echo esc_url( set_url_scheme( 'http://' . $host['host'] . stripslashes($_SERVER['REQUEST_URI']) ) );
 }
 
 /**
@@ -531,10 +527,17 @@ function fetch_feed($url) {
        require_once (ABSPATH . WPINC . '/class-feed.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);
-       $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', 12 * HOUR_IN_SECONDS, $url ) );
        do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
        $feed->init();
        $feed->handle_content_type();