Make WordPress Core


Ignore:
Timestamp:
10/15/2015 06:48:22 AM (9 years ago)
Author:
SergeyBiryukov
Message:

In WP::parse_request() and url_to_postid(), if a post slug clashes with a trashed page, return the post instead of the page.

Props kovshenin, SergeyBiryukov, igmoweb.
Fixes #21970.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp.php

    r34903 r35195  
    210210                        if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) {
    211211                            // This is a verbose page match, let's check to be sure about it.
    212                             if ( ! get_page_by_path( $matches[ $varmatch[1] ] ) )
     212                            $page = get_page_by_path( $matches[ $varmatch[1] ] );
     213                            if ( ! $page ) {
    213214                                continue;
     215                            }
     216
     217                            $post_status_obj = get_post_status_object( $page->post_status );
     218                            if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private ) {
     219                                continue;
     220                            }
    214221                        }
    215222
Note: See TracChangeset for help on using the changeset viewer.