WordPress 4.3
[autoinstalls/wordpress.git] / wp-includes / feed.php
index c77abd529ab00b68e644795f26e15e800d023500..f40f41a6ad79d40ec4d152ec80b6faf9a3717785 100644 (file)
@@ -71,7 +71,6 @@ function bloginfo_rss($show = '') {
  * 'default_feed' filter.
  *
  * @since 2.5.0
  * 'default_feed' filter.
  *
  * @since 2.5.0
- * @uses apply_filters() Calls 'default_feed' hook on the default feed string.
  *
  * @return string Default feed, or for example 'rss2', 'atom', etc.
  */
  *
  * @return string Default feed, or for example 'rss2', 'atom', etc.
  */
@@ -93,13 +92,20 @@ function get_default_feed() {
  *
  * @since 2.2.0
  *
  *
  * @since 2.2.0
  *
- * @param string $sep Optional.How to separate the title. See wp_title() for more info.
+ * @param string $sep Optional. How to separate the title. See wp_title() for more info.
  * @return string Error message on failure or blog title on success.
  */
  * @return string Error message on failure or blog title on success.
  */
-function get_wp_title_rss($sep = '»') {
-       $title = wp_title($sep, false);
-       if ( is_wp_error( $title ) )
+function get_wp_title_rss( $sep = '»' ) {
+       $title = wp_title( $sep, false );
+
+       if ( is_wp_error( $title ) ) {
                return $title->get_error_message();
                return $title->get_error_message();
+       }
+
+       if ( $title && $sep && ' ' !== substr( $title, 0, 1 ) ) {
+               $title = " $sep " . $title;
+       }
+
        /**
         * Filter the blog title for use as the feed title.
         *
        /**
         * Filter the blog title for use as the feed title.
         *
@@ -158,7 +164,6 @@ function get_the_title_rss() {
  * Display the post title in the feed.
  *
  * @since 0.71
  * Display the post title in the feed.
  *
  * @since 0.71
- * @uses get_the_title_rss() Used to retrieve current post title.
  */
 function the_title_rss() {
        echo get_the_title_rss();
  */
 function the_title_rss() {
        echo get_the_title_rss();
@@ -177,7 +182,7 @@ function get_the_content_feed($feed_type = null) {
        if ( !$feed_type )
                $feed_type = get_default_feed();
 
        if ( !$feed_type )
                $feed_type = get_default_feed();
 
-       /** This filter is documented in wp-admin/post-template.php */
+       /** This filter is documented in wp-includes/post-template.php */
        $content = apply_filters( 'the_content', get_the_content() );
        $content = str_replace(']]>', ']]>', $content);
        /**
        $content = apply_filters( 'the_content', get_the_content() );
        $content = str_replace(']]>', ']]>', $content);
        /**
@@ -196,8 +201,6 @@ function get_the_content_feed($feed_type = null) {
  * Display the post content for feeds.
  *
  * @since 2.9.0
  * Display the post content for feeds.
  *
  * @since 2.9.0
- * @uses apply_filters() Calls 'the_content_feed' on the content before processing.
- * @see get_the_content()
  *
  * @param string $feed_type The type of feed. rss2 | atom | rss | rdf
  */
  *
  * @param string $feed_type The type of feed. rss2 | atom | rss | rdf
  */
@@ -273,7 +276,7 @@ function comment_guid($comment_id = null) {
  * @since 2.5.0
  *
  * @param int|object $comment_id Optional comment object or id. Defaults to global comment object.
  * @since 2.5.0
  *
  * @param int|object $comment_id Optional comment object or id. Defaults to global comment object.
- * @return bool|string false on failure or guid for comment on success.
+ * @return false|string false on failure or guid for comment on success.
  */
 function get_comment_guid($comment_id = null) {
        $comment = get_comment($comment_id);
  */
 function get_comment_guid($comment_id = null) {
        $comment = get_comment($comment_id);
@@ -306,7 +309,6 @@ function comment_link() {
  * Retrieve the current comment author for use in the feeds.
  *
  * @since 2.0.0
  * Retrieve the current comment author for use in the feeds.
  *
  * @since 2.0.0
- * @uses get_comment_author()
  *
  * @return string Comment Author
  */
  *
  * @return string Comment Author
  */
@@ -336,7 +338,6 @@ function comment_author_rss() {
  * Display the current comment content for use in the feeds.
  *
  * @since 1.0.0
  * Display the current comment content for use in the feeds.
  *
  * @since 1.0.0
- * @uses get_comment_text()
  */
 function comment_text_rss() {
        $comment_text = get_comment_text();
  */
 function comment_text_rss() {
        $comment_text = get_comment_text();
@@ -389,8 +390,7 @@ function get_the_category_rss($type = null) {
                if ( 'rdf' == $type )
                        $the_list .= "\t\t<dc:subject><![CDATA[$cat_name]]></dc:subject>\n";
                elseif ( 'atom' == $type )
                if ( 'rdf' == $type )
                        $the_list .= "\t\t<dc:subject><![CDATA[$cat_name]]></dc:subject>\n";
                elseif ( 'atom' == $type )
-                       /** This filter is documented in wp-includes/feed.php */
-                       $the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', esc_attr( apply_filters( 'get_bloginfo_rss', get_bloginfo( 'url' ) ) ), esc_attr( $cat_name ) );
+                       $the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', esc_attr( get_bloginfo_rss( 'url' ) ), esc_attr( $cat_name ) );
                else
                        $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode( $cat_name, ENT_COMPAT, get_option('blog_charset') ) . "]]></category>\n";
        }
                else
                        $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode( $cat_name, ENT_COMPAT, get_option('blog_charset') ) . "]]></category>\n";
        }
@@ -448,7 +448,6 @@ function html_type_rss() {
  * attributes.
  *
  * @since 1.5.0
  * attributes.
  *
  * @since 1.5.0
- * @uses get_post_custom() To get the current post enclosure metadata.
  */
 function rss_enclosure() {
        if ( post_password_required() )
  */
 function rss_enclosure() {
        if ( post_password_required() )
@@ -488,7 +487,6 @@ function rss_enclosure() {
  * enclosure(s) consist of link HTML tag(s) with a URI and other attributes.
  *
  * @since 2.2.0
  * enclosure(s) consist of link HTML tag(s) with a URI and other attributes.
  *
  * @since 2.2.0
- * @uses get_post_custom() To get the current post enclosure metadata.
  */
 function atom_enclosure() {
        if ( post_password_required() )
  */
 function atom_enclosure() {
        if ( post_password_required() )
@@ -547,13 +545,51 @@ function prep_atom_text_construct($data) {
                }
        }
 
                }
        }
 
-       if (strpos($data, ']]>') == false) {
+       if (strpos($data, ']]>') === false) {
                return array('html', "<![CDATA[$data]]>");
        } else {
                return array('html', htmlspecialchars($data));
        }
 }
 
                return array('html', "<![CDATA[$data]]>");
        } else {
                return array('html', htmlspecialchars($data));
        }
 }
 
+/**
+ * Displays Site Icon in atom feeds.
+ *
+ * @since 4.3.0
+ *
+ * @see get_site_icon_url()
+ */
+function atom_site_icon() {
+       $url = get_site_icon_url( 32 );
+       if ( $url ) {
+               echo "<icon>$url</icon>\n";
+       }
+}
+
+/**
+ * Displays Site Icon in RSS2.
+ *
+ * @since 4.3.0
+ */
+function rss2_site_icon() {
+       $rss_title = get_wp_title_rss();
+       if ( empty( $rss_title ) ) {
+               $rss_title = get_bloginfo_rss( 'name' );
+       }
+
+       $url = get_site_icon_url( 32 );
+       if ( $url ) {
+               echo '
+<image>
+       <url>' . convert_chars( $url ) . '</url>
+       <title>' . $rss_title . '</title>
+       <link>' . get_bloginfo_rss( 'url' ) . '</link>
+       <width>32</width>
+       <height>32</height>
+</image> ' . "\n";
+       }
+}
+
 /**
  * Display the link for the currently displayed feed in a XSS safe way.
  *
 /**
  * Display the link for the currently displayed feed in a XSS safe way.
  *
@@ -644,6 +680,7 @@ function fetch_feed( $url ) {
         */
        do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
        $feed->init();
         */
        do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
        $feed->init();
+       $feed->set_output_encoding( get_option( 'blog_charset' ) );
        $feed->handle_content_type();
 
        if ( $feed->error() )
        $feed->handle_content_type();
 
        if ( $feed->error() )