WordPress.org

Make WordPress Core

Ticket #3930: fix.diff

File fix.diff, 1.7 KB (added by rob1n, 7 years ago)
  • link-template.php

     
    473473        $home_root = $home_root['path']; 
    474474        $home_root = preg_quote( trailingslashit( $home_root ), '|' ); 
    475475         
    476         $request = preg_replace('|^'. $home_root . '|', '', $qstr); 
    477         $request = preg_replace('|^/+|', '', $qstr); 
     476        $request = preg_replace('|^'. $home_root . '|', '', $request); 
     477        $request = preg_replace('|^/+|', '', $request); 
    478478         
    479         $index = $_SERVER['PHP_SELF']; 
    480         $index = preg_replace('|^'. $home_root . '|', '', $index); 
    481         $index = preg_replace('|^/+|', '', $index); 
    482          
    483479        if ( !$wp_rewrite->using_permalinks() ) { 
    484480                $base = trailingslashit( get_bloginfo( 'home' ) ); 
    485481                 
    486482                if ( $pagenum > 1 ) { 
    487                         $result = add_query_arg( 'paged', $pagenum, $request ); 
     483                        $result = add_query_arg( 'paged', $pagenum, $base . $request ); 
    488484                } else { 
    489485                        $result = $base . $request; 
    490486                } 
    491487        } else { 
     488                $request = preg_replace( '|/?page/(.+)$|', '', $request); 
     489                 
    492490                $qs_regex = '|\?.*?$|'; 
    493491                preg_match( $qs_regex, $request, $qs_match ); 
    494492                 
     
    499497                        $query_string = ''; 
    500498                } 
    501499                 
    502                 $base = get_bloginfo( 'home' ) . '/'; 
     500                $base = trailingslashit( get_bloginfo( 'url' ) ); 
    503501                 
    504502                if ( $wp_rewrite->using_index_permalinks() && $pagenum > 1 ) { 
    505503                        $base .= 'index.php/'; 
    506504                } 
    507505                 
    508                 $request = ( $pagenum > 1 ) ? $request . user_trailingslashit( 'page/' . $pagenum, 'paged' ) : $request; 
     506                if ( $pagenum > 1 ) { 
     507                        $request = ( ( !empty( $request ) ) ? trailingslashit( $request ) : $request ) . user_trailingslashit( 'page/' . $pagenum, 'paged' ); 
     508                } else { 
     509                        $request = user_trailingslashit( $request ); 
     510                } 
     511                 
    509512                $result = $base . $request . $query_string; 
    510513        } 
    511514