diff --git a/wp-includes/post.php b/wp-includes/post.php index f20916269..17736b699 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -976,7 +976,7 @@ function get_page_by_path($page_path, $output = OBJECT) { foreach($page_paths as $pathdir) $full_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir); - $pages = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name = %s AND post_type='page'", $leaf_path )); + $pages = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name = %s AND (post_type = 'page' OR post_type = 'attachment')", $leaf_path )); if ( empty($pages) ) return NULL; diff --git a/wp-includes/query.php b/wp-includes/query.php index 65303a1cb..18edd10e6 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -841,6 +841,12 @@ class WP_Query { $q['pagename'] = sanitize_title(basename($page_paths)); $q['name'] = $q['pagename']; $where .= " AND (ID = '$reqpage')"; + $reqpage_obj = get_page($reqpage); + if ( 'attachment' == $reqpage_obj->post_type ) { + $this->is_attachment = true; + $this->is_page = false; + $q['attachment_id'] = $reqpage; + } } } elseif ('' != $q['attachment']) { $q['attachment'] = str_replace('%2F', '/', urlencode(urldecode($q['attachment'])));