X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/f9001779751f83dc8a10e478bfecb4d8dd5f964c..11be15bd505d66a91e2c80062190b13e315a04a9:/wp-includes/feed.php diff --git a/wp-includes/feed.php b/wp-includes/feed.php index b94e3476..e6b9ae0e 100644 --- a/wp-includes/feed.php +++ b/wp-includes/feed.php @@ -63,7 +63,8 @@ function bloginfo_rss($show = '') { * @return string Default feed, or for example 'rss2', 'atom', etc. */ function get_default_feed() { - return apply_filters('default_feed', 'rss2'); + $default_feed = apply_filters('default_feed', 'rss2'); + return 'rss' == $default_feed ? 'rss2' : $default_feed; } /** @@ -139,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 ) @@ -196,7 +198,7 @@ function the_permalink_rss() { * @return none */ function comments_link_feed() { - echo esc_url( get_comments_link() ); + echo esc_url( apply_filters( 'comments_link_feed', get_comments_link() ) ); } /** @@ -237,7 +239,7 @@ function get_comment_guid($comment_id = null) { * @since 1.5.0 */ function comment_link() { - echo esc_url( get_comment_link() ); + echo esc_url( apply_filters( 'comment_link', get_comment_link() ) ); } /** @@ -389,7 +391,7 @@ function rss_enclosure() { foreach ( (array) $val as $enc ) { $enclosure = explode("\n", $enc); - //only get the the first element eg, audio/mpeg from 'audio/mpeg mpga mp2 mp3' + // only get the first element, e.g. audio/mpeg from 'audio/mpeg mpga mp2 mp3' $t = preg_split('/[ \t]/', trim($enclosure[2]) ); $type = $t[0]; @@ -423,7 +425,7 @@ function atom_enclosure() { foreach ( (array) get_post_custom() as $key => $val ) { if ($key == 'enclosure') { foreach ( (array) $val as $enc ) { - $enclosure = split("\n", $enc); + $enclosure = explode("\n", $enc); echo apply_filters('atom_enclosure', '' . "\n"); } } @@ -486,13 +488,7 @@ function prep_atom_text_construct($data) { */ function self_link() { $host = @parse_url(home_url()); - $host = $host['host']; - echo esc_url( - 'http' - . ( (isset($_SERVER['https']) && $_SERVER['https'] == 'on') ? 's' : '' ) . '://' - . $host - . stripslashes($_SERVER['REQUEST_URI']) - ); + echo esc_url( apply_filters( 'self_link', set_url_scheme( 'http://' . $host['host'] . wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); } /** @@ -524,23 +520,33 @@ function feed_content_type( $type = '' ) { * * @since 2.8 * - * @param string $url URL to retrieve feed + * @param mixed $url URL of feed to retrieve. If an array of URLs, the feeds are merged + * using SimplePie's multifeed feature. + * See also {@link ​http://simplepie.org/wiki/faq/typical_multifeed_gotchas} + * * @return WP_Error|SimplePie WP_Error object on failure or SimplePie object on success */ -function fetch_feed($url) { - require_once (ABSPATH . WPINC . '/class-feed.php'); +function fetch_feed( $url ) { + require_once ( ABSPATH . WPINC . '/class-feed.php' ); $feed = new SimplePie(); - $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_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_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(); if ( $feed->error() ) - return new WP_Error('simplepie-error', $feed->error()); + return new WP_Error( 'simplepie-error', $feed->error() ); return $feed; }