Query component

The Query component includes the following:

  • WP_Query, WP_User_Query, and WP_Comment_Query. These are the three APIs that WordPress offers for constructing complex data queries.
  • Template functions used to deterimine the kind of page currently being requested. These are the is_*() functions – is_month(), is_single(), and so on.
  • WP_Meta_Query, WP_Tax_Query, and WP_Date_Query. These are helper classes, used by the main query classes as well as third-party plugins, to construct SQL clauses related to metadata, taxonomy terms, and date ranges.

Projects for future releases

  • Improved caching. Most queries are currently cached at the level of individual items (posts, users, etc), but the IDs that result from the query are uncached. See #22176 for an example.
  • The query classes, and particularly WP_Query, contain lots of legacy code that causes problems in edge cases, makes unit testing difficult, and so on. There are various initiatives underway to clean up some of these problems. See #30911 for an example related to post_status.


Recent posts on the make/core blog

View all posts tagged query.

123 open tickets in the Query component

123 open tickets defect (bug) enhancement feature request
4.8 1 0 0
Awaiting Review 28 20 3
Future Release 27 41 3

123 open tickets. Last 7 days: +0 tickets

20 tickets that have no replies

View list on Trac

  • #30994  Offset return for wp_get_archives
  • #36309  Timezone issue in WP_Date_Query->build_mysql_datetime
  • #36670  Move CAST to right-hand side of comparison in meta query
  • #36907  Improved sticky post query performance
  • #36966  Search is not working with soft hyphen symbols
  • #37489  If Posts have the same datetime, the order of the post is indefinite.
  • #38703  parse_search() before pre_get_posts hook
  • #39120  Add get/set methods to remaining main query classes (comments and terms)
  • #39140  Taxonomies – operator AND doesn't work properly for taxonomy hierarchies
  • #39428  Die fast in get_posts if get_user_by returns false
  • #39447  Improvment to the get_the_posts_navigation
  • #39632  Adding Query identifier attribute ui
  • #39708  Provide suppress_actions argument on WP_Query::get_posts or apply suppress_filters to pre_get_posts
  • #39818  Bulk Publishing Posts (from Pending State) Causes Pagination To Break
  • #39914  'orderby' date results differs depend on 'post_status'
  • #40300  `title` parameter causes `WP_Query` to return sticky posts.
  • #40327  Wrong SQL request for 'EXIST' OR 'NOT EXIST' on same post meta
  • #40335  using 'pre_get_terms' is confusing when it comes to ordering by meta
  • #40341  Make search possible in custom fields
  • #40404  Slow queries with a large number of posts (tens of thousands and above) performance

1 ticket slated for 4.8

View list in Trac

  • #20899  is_home() should be able to be true when is_feed()

123 open tickets

Open bugs: 56. View list on Trac

Help maintain this component

Component maintainers:

  • boonebgorges
  • wonderboymusic

Many contributors help maintain one or more components. These maintainers are vital to keeping WordPress development running as smoothly as possible. They triage new tickets, look after existing ones, spearhead or mentor tasks, pitch new ideas, curate roadmaps, and provide feedback to other contributors. Longtime maintainers with a deep understanding of particular areas of core are always seeking to mentor others to impart their knowledge.

Want to help? Start following this component! Adjust your notifications here. Feel free to dig into any ticket.

Contributors following this component: