WordPress 4.2.4-scripts
[autoinstalls/wordpress.git] / wp-includes / feed-rss2.php
index 21d9b8e5a54ec24f52e2d0e623bb28a62cd9e748..2390c2d957a04a8aa0c8804eaa3031fb7c416259 100644 (file)
 <?php
-header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
+/**
+ * RSS2 Feed Template for displaying RSS2 Posts feed.
+ *
+ * @package WordPress
+ */
+
+header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
-?>
-<?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
+echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
 
-<!-- generator="wordpress/<?php bloginfo_rss('version') ?>" -->
+/**
+ * Fires between the xml and rss tags in a feed.
+ *
+ * @since 4.0.0
+ *
+ * @param string $context Type of feed. Possible values include 'rss2', 'rss2-comments',
+ *                        'rdf', 'atom', and 'atom-comments'.
+ */
+do_action( 'rss_tag_pre', 'rss2' );
+?>
 <rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
-       <?php do_action('rss2_ns'); ?>
+       xmlns:atom="http://www.w3.org/2005/Atom"
+       xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
+       xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
+       <?php
+       /**
+        * Fires at the end of the RSS root to add namespaces.
+        *
+        * @since 2.0.0
+        */
+       do_action( 'rss2_ns' );
+       ?>
 >
 
 <channel>
        <title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
+       <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
        <link><?php bloginfo_rss('url') ?></link>
        <description><?php bloginfo_rss("description") ?></description>
-       <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate>
-       <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator>
-       <language><?php echo get_option('rss_language'); ?></language>
-       <?php do_action('rss2_head'); ?>
-       <?php while( have_posts()) : the_post(); ?>
+       <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
+       <language><?php bloginfo_rss( 'language' ); ?></language>
+       <sy:updatePeriod><?php
+               $duration = 'hourly';
+
+               /**
+                * Filter how often to update the RSS feed.
+                *
+                * @since 2.1.0
+                *
+                * @param string $duration The update period. Accepts 'hourly', 'daily', 'weekly', 'monthly',
+                *                         'yearly'. Default 'hourly'.
+                */
+               echo apply_filters( 'rss_update_period', $duration );
+       ?></sy:updatePeriod>
+       <sy:updateFrequency><?php
+               $frequency = '1';
+
+               /**
+                * Filter the RSS update frequency.
+                *
+                * @since 2.1.0
+                *
+                * @param string $frequency An integer passed as a string representing the frequency
+                *                          of RSS updates within the update period. Default '1'.
+                */
+               echo apply_filters( 'rss_update_frequency', $frequency );
+       ?></sy:updateFrequency>
+       <?php
+       /**
+        * Fires at the end of the RSS2 Feed Header.
+        *
+        * @since 2.0.0
+        */
+       do_action( 'rss2_head');
+
+       while( have_posts()) : the_post();
+       ?>
        <item>
                <title><?php the_title_rss() ?></title>
                <link><?php the_permalink_rss() ?></link>
-               <comments><?php comments_link(); ?></comments>
+               <comments><?php comments_link_feed(); ?></comments>
                <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
-               <dc:creator><?php the_author() ?></dc:creator>
-               <?php the_category_rss() ?>
+               <dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>
+               <?php the_category_rss('rss2') ?>
 
                <guid isPermaLink="false"><?php the_guid(); ?></guid>
 <?php if (get_option('rss_use_excerpt')) : ?>
-               <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
+               <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
 <?php else : ?>
-               <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
-       <?php if ( strlen( $post->post_content ) > 0 ) : ?>
-               <content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
+               <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
+       <?php $content = get_the_content_feed('rss2'); ?>
+       <?php if ( strlen( $content ) > 0 ) : ?>
+               <content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded>
        <?php else : ?>
-               <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
+               <content:encoded><![CDATA[<?php the_excerpt_rss(); ?>]]></content:encoded>
        <?php endif; ?>
 <?php endif; ?>
-               <wfw:commentRss><?php echo comments_rss(); ?></wfw:commentRss>
+               <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss>
+               <slash:comments><?php echo get_comments_number(); ?></slash:comments>
 <?php rss_enclosure(); ?>
-       <?php do_action('rss2_item'); ?>
+       <?php
+       /**
+        * Fires at the end of each RSS2 feed item.
+        *
+        * @since 2.0.0
+        */
+       do_action( 'rss2_item' );
+       ?>
        </item>
        <?php endwhile; ?>
 </channel>