Make WordPress Core

Ticket #4575: 4575.9.diff

File 4575.9.diff, 3.6 KB (added by stevenkword, 7 years ago)

Now without a new query!

  • src/wp-includes/feed-atom-comments.php

     
    4242        <subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle>
    4343
    4444        <updated><?php
    45                 $date = get_lastcommentmodified( 'GMT' );
     45                $date = get_last_build_date();
    4646                echo $date ? mysql2date( 'Y-m-d\TH:i:s\Z', $date, false ) : date( 'Y-m-d\TH:i:s\Z' );
    4747        ?></updated>
    4848
  • src/wp-includes/feed-atom.php

     
    3131        <subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>
    3232
    3333        <updated><?php
    34                 $date = get_lastpostmodified( 'GMT' );
     34                $date = get_last_build_date();
    3535                echo $date ? mysql2date( 'Y-m-d\TH:i:s\Z', $date, false ) : date( 'Y-m-d\TH:i:s\Z' );
    3636        ?></updated>
    3737
  • src/wp-includes/feed-rss2-comments.php

     
    4848        <link><?php (is_single()) ? the_permalink_rss() : bloginfo_rss("url") ?></link>
    4949        <description><?php bloginfo_rss("description") ?></description>
    5050        <lastBuildDate><?php
    51                 $date = get_lastcommentmodified( 'GMT' );
     51                $date = get_last_build_date();
    5252                echo $date ? mysql2date( 'r', $date, false ) : date( 'r' );
    5353        ?></lastBuildDate>
    5454        <sy:updatePeriod><?php
  • src/wp-includes/feed-rss2.php

     
    4343        <link><?php bloginfo_rss('url') ?></link>
    4444        <description><?php bloginfo_rss("description") ?></description>
    4545        <lastBuildDate><?php
    46                 $date = get_lastpostmodified( 'GMT' );
     46                $date = get_last_build_date();
    4747                echo $date ? mysql2date( 'r', $date, false ) : date( 'r' );
    4848        ?></lastBuildDate>
    4949        <language><?php bloginfo_rss( 'language' ); ?></language>
  • src/wp-includes/feed.php

     
    8989}
    9090
    9191/**
     92 * Get the timestamp of the most recently modified post from WP_Query
     93 *
     94 * If viewing a comment feed, the date of the most recently modified
     95 * comment will be returned.
     96 *
     97 * @since 4.8.1
     98 *
     99 * @return string Date ('Y-m-d H:i:s' for use with mysql2date() )
     100 */
     101function get_last_build_date() {
     102        global $wp_query;
     103
     104        if ( $wp_query->have_posts() ) {
     105                // Determine max post time
     106                $post_times = wp_list_pluck( $wp_query->posts, 'post_modified_gmt' );
     107                $max_post_time = max( $post_times );
     108
     109                // If this is a comment feed, check those objects too
     110                if ( $wp_query->is_comment_feed() && $wp_query->have_comments() ) {
     111                        // Determine the max comment time
     112                        $comment_times = wp_list_pluck( $wp_query->comments, 'comment_date_gmt' );
     113                        $max_comment_time = max( $comment_times );
     114
     115                        // Return the most recent timestamp between posts and comments
     116                        return max( $max_post_time, $max_comment_time );
     117                }
     118                // Return the most recent post timestamp if there are no comments to consider
     119                return $max_post_time;
     120        }
     121
     122        // Fallback to last time any post was modified or published
     123        return get_lastpostmodified( 'GMT' );
     124 }
     125
     126/**
    92127 * Retrieve the blog title for the feed title.
    93128 *
    94129 * @since 2.2.0