WordPress.org

Make WordPress Core

Ticket #6516: 6516.diff

File 6516.diff, 2.9 KB (added by DD32, 5 years ago)
  • wp-includes/canonical.php

     
    9191                                $redirect_url = trailingslashit( $redirect_url ) . user_trailingslashit( get_query_var( 'page' ), 'single_paged' ); 
    9292                                $redirect['query'] = remove_query_arg( 'page', $redirect['query'] ); 
    9393                        } 
     94                } elseif ( is_single() && !empty($_GET['name']) ) { 
     95                        $_post = get_posts( array( 'name' => get_query_var('name') ) ); 
     96                        if ( $_post && $redirect_url = get_permalink( $_post[0]->ID ) ) 
     97                                $redirect['query'] = remove_query_arg('name', $redirect['query']); 
    9498                } elseif ( is_page() && !empty($_GET['page_id']) && ! $redirect_url ) { 
    9599                        if ( $redirect_url = get_permalink(get_query_var('page_id')) ) 
    96100                                $redirect['query'] = remove_query_arg('page_id', $redirect['query']); 
     101                } elseif ( is_page() && !empty($_GET['pagename']) ) { 
     102                        $_post = get_posts( array( 'pagename' => get_query_var('pagename') ) ); 
     103                        if ( $_post && $redirect_url = get_permalink( $_post[0]->ID ) ) 
     104                                $redirect['query'] = remove_query_arg('pagename', $redirect['query']); 
    97105                } elseif ( !empty($_GET['m']) && ( is_year() || is_month() || is_day() ) ) { 
    98106                        $m = get_query_var('m'); 
    99107                        switch ( strlen($m) ) { 
  • wp-includes/query.php

     
    16691671                if ( $q['day'] ) 
    16701672                        $where .= " AND DAYOFMONTH($wpdb->posts.post_date)='" . $q['day'] . "'"; 
    16711673 
    1672                 if ('' != $q['name']) { 
    1673                         $q['name'] = sanitize_title($q['name']); 
    1674                         $where .= " AND $wpdb->posts.post_name = '" . $q['name'] . "'"; 
    1675                 } else if ('' != $q['pagename']) { 
     1674                if ('' != $q['pagename']) { 
    16761675                        if ( isset($this->queried_object_id) ) 
    16771676                                $reqpage = $this->queried_object_id; 
    16781677                        else { 
     
    16891688                                $page_paths = '/' . trim($q['pagename'], '/'); 
    16901689                                $q['pagename'] = sanitize_title(basename($page_paths)); 
    16911690                                $q['name'] = $q['pagename']; 
    1692                                 $where .= " AND ($wpdb->posts.ID = '$reqpage')"; 
     1691                                if ( !empty($reqpage) ) 
     1692                                        $where .= " AND $wpdb->posts.ID = '$reqpage'"; 
    16931693                                $reqpage_obj = get_page($reqpage); 
    16941694                                if ( is_object($reqpage_obj) && 'attachment' == $reqpage_obj->post_type ) { 
    16951695                                        $this->is_attachment = true; 
     
    17021702                        $attach_paths = '/' . trim($q['attachment'], '/'); 
    17031703                        $q['attachment'] = sanitize_title(basename($attach_paths)); 
    17041704                        $q['name'] = $q['attachment']; 
    1705                         $where .= " AND $wpdb->posts.post_name = '" . $q['attachment'] . "'"; 
    17061705                } 
    17071706 
     1707                if ('' != $q['name']) { 
     1708                        $q['name'] = sanitize_title($q['name']); 
     1709                        $where .= " AND $wpdb->posts.post_name = '" . $q['name'] . "'"; 
     1710                } 
     1711 
    17081712                if ( $q['w'] ) 
    17091713                        $where .= " AND WEEK($wpdb->posts.post_date, 1)='" . $q['w'] . "'"; 
    17101714