posts_clauses WordPress Filter Hook

The posts_clauses hook is one of the most important hooks in WordPress. It allows you to modify the SQL query that is used to fetch posts from the database. This hook is very powerful and can be used to do a lot of different things. One of the most common uses for the posts_clauses hook is to alter the order in which posts are fetched from the database. For example, you could use this hook to fetch posts in reverse chronological order. Another common use for the posts_clauses hook is to alter the number of posts that are fetched from the database. For example, you could use this hook to fetch only the most recent 10 posts from the database. If you are a developer, then the posts_clauses hook is a must-know. It is one of the most versatile hooks in WordPress and can be used to do a lot of different things.

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.


Top ↑

Parameters

$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).


Top ↑

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.


Top ↑

Source

File: wp-includes/class-wp-query.php

View on Trac



Top ↑

Changelog

Changelog
VersionDescription
3.1.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.

Show More