WordPress.org

Make WordPress Core

Ticket #4967: 4967.4.diff

File 4967.4.diff, 3.1 KB (added by johnpbloch, 4 years ago)

Canonical redirect for rdf and rss to rss2

  • wp-includes/default-filters.php

     
    234234        add_action( 'sanitize_comment_cookies', 'wp_cron' ); 
    235235 
    236236// 2 Actions 2 Furious 
    237 add_action( 'do_feed_rdf',                'do_feed_rdf',             10, 1 ); 
    238 add_action( 'do_feed_rss',                'do_feed_rss',             10, 1 ); 
     237add_action( 'do_feed_rdf',                'do_feed_rss2',            10, 1 ); 
     238add_action( 'do_feed_rss',                'do_feed_rss2',            10, 1 ); 
    239239add_action( 'do_feed_rss2',               'do_feed_rss2',            10, 1 ); 
    240240add_action( 'do_feed_atom',               'do_feed_atom',            10, 1 ); 
    241241add_action( 'do_pings',                   'do_all_pings',            10, 1 ); 
  • wp-includes/canonical.php

     
    206206 
    207207                // paging and feeds 
    208208                if ( get_query_var('paged') || is_feed() || get_query_var('cpage') ) { 
    209                         while ( preg_match( "#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", $redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $redirect['path'] ) ) { 
     209                        while ( preg_match( "#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", $redirect['path'] ) || preg_match( '#/(comments/?)?(feed|atom|rss2)(/+)?$#', $redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $redirect['path'] ) ) { 
    210210                                // Strip off paging and feed 
    211211                                $redirect['path'] = preg_replace("#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", '/', $redirect['path']); // strip off any existing paging 
    212                                 $redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+|$)#', '/', $redirect['path']); // strip off feed endings 
     212                                $redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2|atom)(/+|$)#', '/', $redirect['path']); // strip off feed endings 
    213213                                $redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $redirect['path']); // strip off any existing comment paging 
    214214                        } 
    215215 
     
    218218                                $addl_path = !empty( $addl_path ) ? trailingslashit($addl_path) : ''; 
    219219                                if ( get_query_var( 'withcomments' ) ) 
    220220                                        $addl_path .= 'comments/'; 
    221                                 $addl_path .= user_trailingslashit( 'feed/' . ( ( get_default_feed() ==  get_query_var('feed') || 'feed' == get_query_var('feed') ) ? '' : get_query_var('feed') ), 'feed' ); 
     221                                if( (in_array( get_default_feed(), array( 'rss', 'rdf' ) ) && 'feed' == get_query_var('feed')) || in_array( get_query_var('feed'), array( 'rss', 'rdf' ) ) ){ 
     222                                        $addl_path .= user_trailingslashit( 'feed/' . ( get_default_feed() == 'rss2' ) ? '' : 'rss2', 'feed' ); 
     223                                }else{ 
     224                                        $addl_path .= user_trailingslashit( 'feed/' . ( ( get_default_feed() ==  get_query_var('feed') || 'feed' == get_query_var('feed') ) ? '' : get_query_var('feed') ), 'feed' ); 
     225                                } 
    222226                                $redirect['query'] = remove_query_arg( 'feed', $redirect['query'] ); 
    223227                        } 
    224228