Make WordPress Core

Changeset 16920


Ignore:
Timestamp:
12/14/2010 04:55:35 PM (13 years ago)
Author:
markjaquith
Message:

Fix canonical paged/feed redirects. props rfw. fixes #14288

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/canonical.php

    r16904 r16920  
    188188        // paging and feeds
    189189        if ( get_query_var('paged') || is_feed() || get_query_var('cpage') ) {
    190             if ( !$redirect_url )
    191                 $redirect_url = $requested_url;
    192             $paged_redirect = @parse_url($redirect_url);
    193             while ( preg_match( "#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", $paged_redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $paged_redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $paged_redirect['path'] ) ) {
     190            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'] ) ) {
    194191                // Strip off paging and feed
    195                 $paged_redirect['path'] = preg_replace("#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", '/', $paged_redirect['path']); // strip off any existing paging
    196                 $paged_redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+|$)#', '/', $paged_redirect['path']); // strip off feed endings
    197                 $paged_redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $paged_redirect['path']); // strip off any existing comment paging
     192                $redirect['path'] = preg_replace("#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", '/', $redirect['path']); // strip off any existing paging
     193                $redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+|$)#', '/', $redirect['path']); // strip off feed endings
     194                $redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $redirect['path']); // strip off any existing comment paging
    198195            }
    199196
     
    226223            }
    227224
    228             $paged_redirect['path'] = user_trailingslashit( preg_replace('|/index.php/?$|', '/', $paged_redirect['path']) ); // strip off trailing /index.php/
    229             if ( !empty( $addl_path ) && $wp_rewrite->using_index_permalinks() && strpos($paged_redirect['path'], '/index.php/') === false )
    230                 $paged_redirect['path'] = trailingslashit($paged_redirect['path']) . 'index.php/';
     225            $redirect['path'] = user_trailingslashit( preg_replace('|/index.php/?$|', '/', $redirect['path']) ); // strip off trailing /index.php/
     226            if ( !empty( $addl_path ) && $wp_rewrite->using_index_permalinks() && strpos($redirect['path'], '/index.php/') === false )
     227                $redirect['path'] = trailingslashit($redirect['path']) . 'index.php/';
    231228            if ( !empty( $addl_path ) )
    232                 $paged_redirect['path'] = trailingslashit($paged_redirect['path']) . $addl_path;
    233             $redirect_url = $paged_redirect['scheme'] . '://' . $paged_redirect['host'] . $paged_redirect['path'];
    234             $redirect['path'] = $paged_redirect['path'];
     229                $redirect['path'] = trailingslashit($redirect['path']) . $addl_path;
     230            $redirect_url = $redirect['scheme'] . '://' . $redirect['host'] . $redirect['path'];
     231            $redirect['path'] = $redirect['path'];
    235232        }
    236233    }
Note: See TracChangeset for help on using the changeset viewer.