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.

Usage

add_filter( 'posts_clauses', 'wp_kama_posts_clauses_filter', 10, 2 );

/**
 * Function for `posts_clauses` filter-hook.
 * 
 * @param string[] $clauses Associative array of the clauses for the query.
 * @param WP_Query $query   The WP_Query instance (passed by reference).
 *
 * @return string[]
 */
function wp_kama_posts_clauses_filter( $clauses, $query ){

	// filter...
	return $clauses;
}
$clauses(string[])

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.
$query(WP_Query)
The WP_Query instance (passed by reference).

Changelog

Since 3.1.0 Introduced.

Where the hook is called

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

Where the hook is used in WordPress

wp-admin/includes/ajax-actions.php 2997
add_filter( 'posts_clauses', '_filter_query_attachment_filenames' );
wp-admin/includes/post.php 1305
add_filter( 'posts_clauses', '_filter_query_attachment_filenames' );
wp-includes/post.php 7935
remove_filter( 'posts_clauses', __FUNCTION__ );
wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php 100
add_filter( 'posts_clauses', '_filter_query_attachment_filenames' );