Opened 10 years ago
Closed 10 years ago
#32272 closed defect (bug) (duplicate)
Built In 'Post' Archive Ignored Using is_post_type_archive()
Reported by: | Howdy_McGee | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 4.2.1 |
Component: | Query | Keywords: | |
Focuses: | administration, template | Cc: |
Description
I've tested this a couple times and using the built-in post type "Post" archives then testing against is_post_type_archive( 'post' )
always returns false. It does get caught by the catch-all is_archive()
on the other-hand.
The expected outcome is when viewing Post Archives to be able to use is_post_type_archive( 'post' )
to specifically target Post Archives.
A quick way to test this is to add this under wp_head()
if( is_post_type_archive( 'post' ) ) { die( 'Post Archive' ); } else if( is_archive() ) { die( 'All Archives' ); }
Which always evaluates to false on Post Archives.
Change History (4)
#1
follow-up:
↓ 2
@
10 years ago
- Milestone Awaiting Review deleted
- Resolution set to duplicate
- Status changed from new to closed
#2
in reply to:
↑ 1
;
follow-up:
↓ 3
@
10 years ago
- Resolution duplicate deleted
- Status changed from closed to reopened
Replying to SergeyBiryukov:
Duplicate of #23826.
The linked ticket is not really a duplicate. They're addressing an issue ( over 2 years old ) with is_post_type_archive( 'post' )
working for Front Page or Blog but this issue regards actual Post Archives, Month / Year Archives. There's already is_category()
for blog categories, is_tag()
for tags, is_author()
for Authors, but nothing specifically targets Post Date Archive Pages.
The real issue is that on Month / Year Archive Pages, is_post_type_archive( 'post' )
will always return false on those pages so to target those specific pages you have to use is_archive()
which will also catch Post Type Archives. You're forced to have your Post Type Archive conditionals at the top and actual Post Archive is_archive()
conditional at the bottom, which even then may catch unintended post type archives.
This isn't documented very well in the Codex or Code Reference and I feel is really a bug.
#3
in reply to:
↑ 2
@
10 years ago
Replying to Howdy_McGee:
There's an explanation from nacin why is_post_type_archive()
works the way it does.
There's already
is_category()
for blog categories,is_tag()
for tags,is_author()
for Authors, but nothing specifically targets Post Date Archive Pages.
is_date()
does: https://codex.wordpress.org/Function_Reference/is_date.
Duplicate of #23826.