WP_Query::query( string|array $query ): WP_Post[]|int[]
- Since
- 1.5.0
- Source
wp-includes/class-wp-query.php:3954
Parameters
$querystring|array- URL query string or array of query arguments.
Return
WP_Post[]|int[]- Array of post objects or post IDs.
Cost profile
Measured from the compiled opcodes, not from a stopwatch. Every number here is identical on any machine that runs the same PHP version, and every function in core is ranked by these figures.
- Cost class
- Heavy
- Scaling
- Constant
- Instructions
- 14
- Plugin surface
- None
- Called by
- 1
Reaches the database via WP_Query::query().
No loop in the body: the same number of instructions runs whatever you pass in.
Executed per call on PHP 8.4. The body compiles to 14.
Nothing here hands control to plugin code.
1 place in core call this, so the cost is paid more often than your own code shows.
What it touches
- sqldatabase query
WP_Query::query()this function does it
Further down the call graph this can also reach hook — that is the worst case, several calls deep and usually down an error path, not what a normal call pays.
What one call costs · 1 distinct outcome
One number would be a lie: the work depends on which branch runs. These are every distinct cost WP_Query::query() can have, taken from its control-flow graph on PHP 8.4.
| When | Instructions | Calls it makes |
|---|---|---|
| always | 14 | ->init()wp_parse_args()->get_posts() |
Across PHP versions
| PHP | Compiled | Executed | Branches | Notes |
|---|---|---|---|---|
7.4 | 14 | 14 | 0 | Compiles to the same instructions |
8.1 | 14 | 14 | 0 | Compiles to the same instructions |
8.2 | 14 | 14 | 0 | Compiles to the same instructions |
8.3 | 14 | 14 | 0 | Compiles to the same instructions |
8.4 | 14 | 14 | 0 | Compiles to the same instructions |
Oldest PHP that compiles this body: 7.4. An instruction is not a fixed amount of time, so a version with the same count is not necessarily the same speed; what the count rules out is a difference in the work itself.
Uses · 3
- wp_parse_args()Merges user defined arguments into defaults array.
- WP_Query::init()Initiates object properties and sets default values.
- WP_Query::get_posts()Retrieves an array of posts based on query variables.
Used by · 1
- WP_Query::__construct()Constructor.
Source
public function query( $query ) { $this->init(); $this->query = wp_parse_args( $query ); $this->query_vars = $this->query; return $this->get_posts(); }History
Introduced in 1.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 7.0.4 tag, from
src/wp-includes/class-wp-query.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.