WordPress 4.7
[autoinstalls/wordpress.git] / wp-includes / feed-rss2.php
1 <?php
2 /**
3  * RSS2 Feed Template for displaying RSS2 Posts feed.
4  *
5  * @package WordPress
6  */
7
8 header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
9 $more = 1;
10
11 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
12
13 /**
14  * Fires between the xml and rss tags in a feed.
15  *
16  * @since 4.0.0
17  *
18  * @param string $context Type of feed. Possible values include 'rss2', 'rss2-comments',
19  *                        'rdf', 'atom', and 'atom-comments'.
20  */
21 do_action( 'rss_tag_pre', 'rss2' );
22 ?>
23 <rss version="2.0"
24         xmlns:content="http://purl.org/rss/1.0/modules/content/"
25         xmlns:wfw="http://wellformedweb.org/CommentAPI/"
26         xmlns:dc="http://purl.org/dc/elements/1.1/"
27         xmlns:atom="http://www.w3.org/2005/Atom"
28         xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
29         xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
30         <?php
31         /**
32          * Fires at the end of the RSS root to add namespaces.
33          *
34          * @since 2.0.0
35          */
36         do_action( 'rss2_ns' );
37         ?>
38 >
39
40 <channel>
41         <title><?php wp_title_rss(); ?></title>
42         <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
43         <link><?php bloginfo_rss('url') ?></link>
44         <description><?php bloginfo_rss("description") ?></description>
45         <lastBuildDate><?php
46                 $date = get_lastpostmodified( 'GMT' );
47                 echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date ) : date( 'D, d M Y H:i:s +0000' );
48         ?></lastBuildDate>
49         <language><?php bloginfo_rss( 'language' ); ?></language>
50         <sy:updatePeriod><?php
51                 $duration = 'hourly';
52
53                 /**
54                  * Filters how often to update the RSS feed.
55                  *
56                  * @since 2.1.0
57                  *
58                  * @param string $duration The update period. Accepts 'hourly', 'daily', 'weekly', 'monthly',
59                  *                         'yearly'. Default 'hourly'.
60                  */
61                 echo apply_filters( 'rss_update_period', $duration );
62         ?></sy:updatePeriod>
63         <sy:updateFrequency><?php
64                 $frequency = '1';
65
66                 /**
67                  * Filters the RSS update frequency.
68                  *
69                  * @since 2.1.0
70                  *
71                  * @param string $frequency An integer passed as a string representing the frequency
72                  *                          of RSS updates within the update period. Default '1'.
73                  */
74                 echo apply_filters( 'rss_update_frequency', $frequency );
75         ?></sy:updateFrequency>
76         <?php
77         /**
78          * Fires at the end of the RSS2 Feed Header.
79          *
80          * @since 2.0.0
81          */
82         do_action( 'rss2_head');
83
84         while( have_posts()) : the_post();
85         ?>
86         <item>
87                 <title><?php the_title_rss() ?></title>
88                 <link><?php the_permalink_rss() ?></link>
89 <?php if ( get_comments_number() || comments_open() ) : ?>
90                 <comments><?php comments_link_feed(); ?></comments>
91 <?php endif; ?>
92                 <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
93                 <dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>
94                 <?php the_category_rss('rss2') ?>
95
96                 <guid isPermaLink="false"><?php the_guid(); ?></guid>
97 <?php if (get_option('rss_use_excerpt')) : ?>
98                 <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
99 <?php else : ?>
100                 <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
101         <?php $content = get_the_content_feed('rss2'); ?>
102         <?php if ( strlen( $content ) > 0 ) : ?>
103                 <content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded>
104         <?php else : ?>
105                 <content:encoded><![CDATA[<?php the_excerpt_rss(); ?>]]></content:encoded>
106         <?php endif; ?>
107 <?php endif; ?>
108 <?php if ( get_comments_number() || comments_open() ) : ?>
109                 <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss>
110                 <slash:comments><?php echo get_comments_number(); ?></slash:comments>
111 <?php endif; ?>
112 <?php rss_enclosure(); ?>
113         <?php
114         /**
115          * Fires at the end of each RSS2 feed item.
116          *
117          * @since 2.0.0
118          */
119         do_action( 'rss2_item' );
120         ?>
121         </item>
122         <?php endwhile; ?>
123 </channel>
124 </rss>