W3cubDocs

/WordPress

apply_filters_ref_array( ‘posts_clauses’, string[] $clauses, WP_Query $query )

Filters all query clauses at once, for convenience.

Description

Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT, fields (SELECT), and LIMIT clauses.

Parameters

$clausesstring[]
Associative array of the clauses for the query.
  • where string
    The WHERE clause of the query.
  • groupby string
    The GROUP BY clause of the query.
  • join string
    The JOIN clause of the query.
  • orderby string
    The ORDER BY clause of the query.
  • distinct string
    The DISTINCT clause of the query.
  • fields string
    The SELECT clause of the query.
  • limits string
    The LIMIT clause of the query.
$queryWP_Query
The WP_Query instance (passed by reference).

More Information

The posts_clauses filter runs before the query gets executed and is essentially the sum of all filters that run immediately before it. So it should be used if you don’t intend to let another plugin override it, or if you need to alter several different parts of the query at once. If you’re only modifying a particular clause, you should probably use one of these clause-specific filters:

* posts_where_paged
* posts_groupby
* posts_join_paged
* posts_orderby
* posts_distinct
* post_limits
* posts_fields

Note: If you’re working on a caching plugin, use the posts_clauses_request filter instead. It’s basically the same filter, but it runs later (and after posts_selection), specifically so that “regular” plugins can execute their filters before your caching plugin does anything.

Source

$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );

Changelog

Version Description
3.1.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/hooks/posts_clauses