WordPress.org

Make WordPress Core

Ticket #21970: 21970.3.diff

File 21970.3.diff, 1.6 KB (added by SergeyBiryukov, 5 years ago)
  • wp-includes/class-wp.php

     
    211211
    212212                                                if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) {
    213213                                                        // this is a verbose page match, lets check to be sure about it
    214                                                         if ( ! get_page_by_path( $matches[ $varmatch[1] ] ) )
    215                                                                 continue;
     214                                                        $page = get_page_by_path( $matches[ $varmatch[1] ] );
     215                                                        if ( ! $page )
     216                                                                continue;
     217
     218                                                        $post_status_obj = get_post_status_object( $page->post_status );
     219                                                        if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private ) )
     220                                                                continue;
    216221                                                }
    217222
    218223                                                // Got a match.
  • wp-includes/rewrite.php

     
    345345
    346346                        if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) {
    347347                                // this is a verbose page match, lets check to be sure about it
    348                                 if ( ! get_page_by_path( $matches[ $varmatch[1] ] ) )
     348                                $page = get_page_by_path( $matches[ $varmatch[1] ] );
     349                                if ( ! $page )
    349350                                        continue;
     351
     352                                $post_status_obj = get_post_status_object( $page->post_status );
     353                                if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private ) )
     354                                        continue;
    350355                        }
    351356
    352357                        // Got a match.