WordPress.org

Make WordPress Core

Ticket #20902: 20920.diff

File 20920.diff, 2.4 KB (added by kovshenin, 21 months ago)
  • wp-includes/canonical.php

     
    121121                } elseif ( is_page() && !empty($_GET['page_id']) && ! $redirect_url ) { 
    122122                        if ( $redirect_url = get_permalink(get_query_var('page_id')) ) 
    123123                                $redirect['query'] = remove_query_arg('page_id', $redirect['query']); 
     124                } elseif ( is_page() && ! empty( $_GET['pagename'] ) ) { 
     125                        $page = get_page_by_path( $_GET['pagename'] ); 
     126                        if ( $page && $redirect_url = get_permalink( $page->ID ) ) 
     127                                $redirect['query'] = remove_query_arg( 'pagename', $redirect['query'] ); 
    124128                } elseif ( is_page() && !is_feed() && isset($wp_query->queried_object) && 'page' == get_option('show_on_front') && $wp_query->queried_object->ID == get_option('page_on_front')  && ! $redirect_url ) { 
    125129                        $redirect_url = home_url('/'); 
    126130                } elseif ( is_home() && !empty($_GET['page_id']) && 'page' == get_option('show_on_front') && get_query_var('page_id') == get_option('page_for_posts')  && ! $redirect_url ) { 
     
    157161                                if ( $redirect_url = get_author_posts_url($author->ID, $author->user_nicename) ) 
    158162                                        $redirect['query'] = remove_query_arg('author', $redirect['query']); 
    159163                        } 
     164                } elseif ( is_author() && ! empty( $_GET['author_name'] ) ) { 
     165                        $author = get_user_by( 'slug', $_GET['author_name'] ); 
     166                        if ( ( false !== $author ) && $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE $wpdb->posts.post_author = %d AND $wpdb->posts.post_status = 'publish' LIMIT 1", $author->ID ) ) ) { 
     167                                if ( $redirect_url = get_author_posts_url( $author->ID, $author->user_nicename ) ) 
     168                                        $redirect['query'] = remove_query_arg( 'author_name', $redirect['query'] ); 
     169                        } 
    160170                } elseif ( is_category() || is_tag() || is_tax() ) { // Terms (Tags/categories) 
    161171 
    162172                        $term_count = 0; 
  • wp-includes/post.php

     
    54015401        $slugs = get_post_format_slugs(); 
    54025402        if ( isset( $slugs[ $qvs['post_format'] ] ) ) 
    54035403                $qvs['post_format'] = 'post-format-' . $slugs[ $qvs['post_format'] ]; 
    5404         $tax = get_taxonomy( 'post_format' ); 
    5405         if ( ! is_admin() ) 
    5406                 $qvs['post_type'] = $tax->object_type; 
    54075404        return $qvs; 
    54085405} 
    54095406add_filter( 'request', '_post_format_request' );