WordPress.org

Make WordPress Core

Ticket #4967: 4967.6.diff

File 4967.6.diff, 2.0 KB (added by johnpbloch, 3 years ago)

Don't allow obsolete feeds as the default feed.

  • wp-includes/canonical.php

     
    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' ); 
    222225                                $redirect['query'] = remove_query_arg( 'feed', $redirect['query'] ); 
    223226                        } 
    224227 
     
    295298                // Clean up empty query strings 
    296299                $redirect['query'] = trim(preg_replace( '#(^|&)(p|page_id|cat|tag)=?(&|$)#', '&', $redirect['query']), '&'); 
    297300 
     301                // Redirect obsolete feeds 
     302                $redirect['query'] = preg_replace( '#(^|&)feed=(rss|rdf)(&|$)#', '$1feed=rss2$3', $redirect['query'] ); 
     303 
    298304                // Remove redundant leading ampersands 
    299305                $redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] ); 
    300306        } 
  • wp-includes/feed.php

     
    6363 * @return string Default feed, or for example 'rss2', 'atom', etc. 
    6464 */ 
    6565function get_default_feed() { 
    66         return apply_filters('default_feed', 'rss2'); 
     66        $default_feed = apply_filters('default_feed', 'rss2'); 
     67        return in_array( $default_feed, array( 'rss', 'rdf' ) ) ? 'rss2' : $default_feed; 
    6768} 
    6869 
    6970/**