Ticket #4967: 4967.5.diff

File 4967.5.diff, 1.5 KB (added by johnpbloch, 22 months ago)
Line 
1Index: 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        }