[wp-trac] [WordPress Trac] #52094: Queries with perm readable/editable will not work for multiple post types and status queries

WordPress Trac noreply at wordpress.org
Thu Apr 8 22:31:59 UTC 2021

#52094: Queries with perm readable/editable will not work for multiple post types
and status queries
 Reporter:  leogermani    |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Query         |     Version:
 Severity:  normal        |  Resolution:
 Keywords:  needs-patch   |     Focuses:

Comment (by leogermani):

 Here's a first proposed fix -> https://github.com/leogermani/wordpress-

 This is a PR that depends on the PR that fixes #48556 and a patch should
 be properly created once #48556 is merged. (or we should turn both in one
 single patch)

 This patch also addresses the bug described in #51094 and adds a specific
 test for that.

 = What this patch does: =

 1. It fixed #51094 by checking if at least one valid post status was found
 in the query

 2. It fixes support for custom post statuses in the block of code that

 foreach ( get_post_stati( array(), 'objects' ) as $status =>
 $status_object ) {
         if ( in_array( $status, $q_status, true ) ) {
                 if ( $status_object->private ) {


 3. It adds the current post Status logic inside a Loop and treat each post
 type differently, depending on the specific capabilities for each of them

 = Note =

 This patch introduces the same logic introduced by #48556 to the `status`
 query, so there's a bit of duplicate logic.

 I considered doing everything in the same block of code and simplifying
 the whole thing, but this would "fix" some current inconsistencies and,
 therefore, change some behavior I'm not sure we want to change. It could
 also end up being a bit more complicated to read. But I can give it a go
 if anyone thinks it's worth it. It's not very difficult

 The main "inconsistency" is that when we query for multiple post types, we
 do not consider the `perm` parameter. We basically assume `perm=readable`
 but there's no support for `perm=editable` for example. So we would start
 supporting it.

 Also there is how we handle "protected states that should show in the
 admin all list", that are not considered when querying for post statuses.

Ticket URL: <https://core.trac.wordpress.org/ticket/52094#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list