| 1 | Index: wp-includes/canonical.php |
|---|
| 2 | =================================================================== |
|---|
| 3 | --- wp-includes/canonical.php (revision 18534) |
|---|
| 4 | +++ wp-includes/canonical.php (working copy) |
|---|
| 5 | @@ -218,7 +218,10 @@ |
|---|
| 6 | $addl_path = !empty( $addl_path ) ? trailingslashit($addl_path) : ''; |
|---|
| 7 | if ( get_query_var( 'withcomments' ) ) |
|---|
| 8 | $addl_path .= 'comments/'; |
|---|
| 9 | - $addl_path .= user_trailingslashit( 'feed/' . ( ( get_default_feed() == get_query_var('feed') || 'feed' == get_query_var('feed') ) ? '' : get_query_var('feed') ), 'feed' ); |
|---|
| 10 | + if( (in_array( get_default_feed(), array( 'rss', 'rdf' ) ) && 'feed' == get_query_var('feed')) || in_array( get_query_var('feed'), array( 'rss', 'rdf' ) ) ) |
|---|
| 11 | + $addl_path .= user_trailingslashit( 'feed/' . ( ( get_default_feed() == 'rss2' ) ? '' : 'rss2' ), 'feed' ); |
|---|
| 12 | + else |
|---|
| 13 | + $addl_path .= user_trailingslashit( 'feed/' . ( ( get_default_feed() == get_query_var('feed') || 'feed' == get_query_var('feed') ) ? '' : get_query_var('feed') ), 'feed' ); |
|---|
| 14 | $redirect['query'] = remove_query_arg( 'feed', $redirect['query'] ); |
|---|
| 15 | } |
|---|
| 16 | |
|---|
| 17 | @@ -295,6 +298,9 @@ |
|---|
| 18 | // Clean up empty query strings |
|---|
| 19 | $redirect['query'] = trim(preg_replace( '#(^|&)(p|page_id|cat|tag)=?(&|$)#', '&', $redirect['query']), '&'); |
|---|
| 20 | |
|---|
| 21 | + // Redirect obsolete feeds |
|---|
| 22 | + $redirect['query'] = preg_replace( '#(^|&)feed=(rss|rdf)(&|$)#', '$1feed=rss2$3', $redirect['query'] ); |
|---|
| 23 | + |
|---|
| 24 | // Remove redundant leading ampersands |
|---|
| 25 | $redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] ); |
|---|
| 26 | } |
|---|