posts_clauses filter-hookWP 3.1.0

Filters all query clauses at once, for convenience.

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


add_filter( 'posts_clauses', 'wp_kama_posts_clauses_filter' );

 * Function for `posts_clauses` filter-hook.
 * @param string[] $clauses Associative array of the clauses for the query.
 * @return string[]
function wp_kama_posts_clauses_filter( $clauses ){

	// filter...
	return $clauses;

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.


Since 3.1.0 Introduced.

Where the hook is called

wp-includes/class-wp-query.php 2951
$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );

Where the hook is used in WordPress

wp-includes/deprecated.php 4530
remove_filter( 'posts_clauses', __FUNCTION__ );