Opened 12 years ago
Closed 9 years ago
#21821 closed defect (bug) (worksforme)
wp_title spits warnings and returns a blank when a query is both is_post_type_archive and is_category/is_tax/etc
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | minor | Version: | 3.4 |
Component: | Themes | Keywords: | needs-patch |
Focuses: | template | Cc: |
Description
When a query is made against both a post type and a category / taxonomy / et cetera, the query is both is_category and is_post_type_archive. The queried_object is set to the first object type it comes to; category / taxonomy come before post_type, so the queried_object is a term here.
wp_title walks through each is_ option in turn and resets the title with every one it finds being true. When there is both a category and a post type archive, single_term_title gets called first, successfully setting the title, but then post_type_archive_title is called, which assumes the queried_object is in fact a post type object; it spits out a couple of warnings and returns a blank title.
Probably, since its subordinate title functions depend on the queried_object being as expected, wp_title should use else if rather than just if (in the same way that get_queried_object does), but I'm not sure if that would have implications elsewhere.
(Tested against trunk r21768 as well as 3.4.1)
Attached is a unit test that demonstrates the problem.
Related/duplicate: #18614, #19035, #20994