[wp-trac] [WordPress Trac] #24204: Tax query forces multiple post type treatment due to array check
WordPress Trac
noreply at wordpress.org
Sat Apr 27 01:25:59 UTC 2013
#24204: Tax query forces multiple post type treatment due to array check
--------------------------+-----------------
Reporter: nacin | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: 3.6
Component: Query | Version:
Severity: normal | Keywords:
--------------------------+-----------------
In WP_Query, if you have more than one post type in the query, things get
much more complicated, because we can't do generic permissions checks in
SQL. Prime example would be read_private_posts. I spotted the bug here
because I was not able to see private posts by others in a widget produced
with the help of a tax query.
Sometimes what happens instead is $post_type is set to either
'multiple_post_type' or 'any' to deliberately throw off cap checks. These
should probably be more special and handled in a better way. That is not
the bug I am reporting, though.
When is_tax, we loop through the taxonomies to extract the associated post
types, rather than specifying 'any' as we had done prior to #21290.
$post_type ends up always being an array here, even if there's only one
post type found.
Later on, when deciding if we are dealing with multiple post types, we
only check is_array() — an array with one element is not properly treated
as a single post type query.
We should adjust both cases. Let's let $post_type be scalar if that's all
we found in the is_tax branch, but let's also treat an array(
$one_post_type ) as exactly one post type.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/24204>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list