WordPress.org

Make WordPress Core

Ticket #3930: fix.diff

File fix.diff, 1.7 KB (added by rob1n, 11 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