Make WordPress Core

Opened 12 years ago

Closed 12 years ago

#16438 closed defect (bug) (duplicate)

page and attachment conflict

Reported by: ejikas's profile ejikas Owned by:
Milestone: Priority: normal
Severity: critical Version: 3.0.4
Component: Query Keywords: has-patch
Focuses: Cc:


this bug noticed on 3.0.4 and also in the 3.1-RC3-17376. Also I noticed it was written about it 4months ago in support forum:

In short: instead of the page getting attachment page.

How to see the bug:

  1. using permalinks.
  2. upload an image to the media gallery.
  3. created Page with the same slug like was the file name.

if the file name was 1-200x150.jpg so page slug should be 1-200x150,
if the file name was about-group.jpg so the new page slug should be about-group.

  1. publish the page and try to view it. Instead of the page you will get the attachment page.

if you would insert the image to any post/page the bug would dissapear. even after you remove the image from the page content (it remains in the page gallery)

the bug is there:
file: wp-includes/query.php,
line #1509: $this->queried_object =& get_page_by_path($qvpagename?);

or in other words the function get_page_by_path(), that is in wp-includes/post.php, line #2890.

it's easy to see if both page and attachment share one slug and the attachment has no "parent" it leads to the bug.


not sure why the it is used function get_page_by_path() that queries not only pages but attachments too. I think there should be called function like get_page_by_slug (or ..by_name) that queries only page type records. If I'm not mistaken for attachments and attachment pages wp generates different rewrite rules with no var "pagename". If I'm right should be changed the call in query.php

Attachments (1)

16438.diff (743 bytes) - added by jltallon 12 years ago.
Remove post_type='attachment' from get_page_path

Download all attachments as: .zip

Change History (6)

#1 @ejikas
12 years ago

  • Keywords page attachment slug added

12 years ago

Remove post_type='attachment' from get_page_path

#2 @scribu
12 years ago

  • Keywords has-patch added; page attachment slug removed

#3 @Ipstenu
12 years ago

You can also do this if you have a 'sub page'

Make a page: foobar - URL is

Upload an image to that page: baznarf.jpg - URL is

Make a page under foobar called baznarf - URL is


#5 @SergeyBiryukov
12 years ago

  • Milestone Awaiting Review deleted
  • Resolution set to duplicate
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.