/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. <channel> 
  40. <title><?php wp_title_rss(); ?></title> 
  41. <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" /> 
  42. <link><?php bloginfo_rss('url') ?></link> 
  43. <description><?php bloginfo_rss("description") ?></description> 
  44. <lastBuildDate><?php 
  45. $date = get_lastpostmodified( 'GMT' ); 
  46. echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date, false ) : date( 'D, d M Y H:i:s +0000' ); 
  47. ?></lastBuildDate> 
  48. <language><?php bloginfo_rss( 'language' ); ?></language> 
  49. <sy:updatePeriod><?php 
  50. $duration = 'hourly'; 
  51.  
  52. /** 
  53. * Filters how often to update the RSS feed. 
  54. * 
  55. * @since 2.1.0 
  56. * 
  57. * @param string $duration The update period. Accepts 'hourly', 'daily', 'weekly', 'monthly',  
  58. * 'yearly'. Default 'hourly'. 
  59. */ 
  60. echo apply_filters( 'rss_update_period', $duration ); 
  61. ?></sy:updatePeriod> 
  62. <sy:updateFrequency><?php 
  63. $frequency = '1'; 
  64.  
  65. /** 
  66. * Filters the RSS update frequency. 
  67. * 
  68. * @since 2.1.0 
  69. * 
  70. * @param string $frequency An integer passed as a string representing the frequency 
  71. * of RSS updates within the update period. Default '1'. 
  72. */ 
  73. echo apply_filters( 'rss_update_frequency', $frequency ); 
  74. ?></sy:updateFrequency> 
  75. <?php 
  76. /** 
  77. * Fires at the end of the RSS2 Feed Header. 
  78. * 
  79. * @since 2.0.0 
  80. */ 
  81. do_action( 'rss2_head'); 
  82.  
  83. while( have_posts()) : the_post(); 
  84. ?> 
  85. <item> 
  86. <title><?php the_title_rss() ?></title> 
  87. <link><?php the_permalink_rss() ?></link> 
  88. <?php if ( get_comments_number() || comments_open() ) : ?> 
  89. <comments><?php comments_link_feed(); ?></comments> 
  90. <?php endif; ?> 
  91. <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> 
  92. <dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator> 
  93. <?php the_category_rss('rss2') ?> 
  94.  
  95. <guid isPermaLink="false"><?php the_guid(); ?></guid> 
  96. <?php if (get_option('rss_use_excerpt')) : ?> 
  97. <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description> 
  98. <?php else : ?> 
  99. <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description> 
  100. <?php $content = get_the_content_feed('rss2'); ?> 
  101. <?php if ( strlen( $content ) > 0 ) : ?> 
  102. <content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded> 
  103. <?php else : ?> 
  104. <content:encoded><![CDATA[<?php the_excerpt_rss(); ?>]]></content:encoded> 
  105. <?php endif; ?> 
  106. <?php endif; ?> 
  107. <?php if ( get_comments_number() || comments_open() ) : ?> 
  108. <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss> 
  109. <slash:comments><?php echo get_comments_number(); ?></slash:comments> 
  110. <?php endif; ?> 
  111. <?php rss_enclosure(); ?> 
  112. <?php 
  113. /** 
  114. * Fires at the end of each RSS2 feed item. 
  115. * 
  116. * @since 2.0.0 
  117. */ 
  118. do_action( 'rss2_item' ); 
  119. ?> 
  120. </item> 
  121. <?php endwhile; ?> 
  122. </channel> 
  123. </rss> 
.