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/rewrite-functions.php

    r35121 r35195  
    398398            if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) {
    399399                // This is a verbose page match, let's check to be sure about it.
    400                 if ( ! get_page_by_path( $matches[ $varmatch[1] ] ) )
     400                $page = get_page_by_path( $matches[ $varmatch[1] ] );
     401                if ( ! $page ) {
    401402                    continue;
     403                }
     404
     405                $post_status_obj = get_post_status_object( $page->post_status );
     406                if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private ) {
     407                    continue;
     408                }
    402409            }
    403410
Note: See TracChangeset for help on using the changeset viewer.