WordPress.org

Make WordPress Core

Ticket #20902: 20920.diff

File 20920.diff, 2.4 KB (added by kovshenin, 7 years 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' );