Used By
| Used By | Description |
|---|---|
| wp-includes/class-wp-query.php: WP_Query::get_posts() | Retrieves an array of posts based on query variables. |
Filters the WHERE clause of the query.
restrict_manage_posts it allows you to only show posts matching specific conditions. Here is an example to match the restrict_manage_posts example:
add_filter( 'posts_where' , 'posts_where' );
function posts_where( $where ) {
if( is_admin() ) {
global $wpdb;
if ( isset( $_GET['author_restrict_posts'] ) && !empty( $_GET['author_restrict_posts'] ) && intval( $_GET['author_restrict_posts'] ) != 0 ) {
$author = intval( $_GET['author_restrict_posts'] );
$where .= " AND ID IN (SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id=$author )";
}
}
return $where;
} Depending on setup, if we had a custom post type of type ‘book’ with a taxonomy (category style) of type ‘author’, this filter would allow us to only show books written by a specific author.
//some function that modifies the query
function useless_condition ( $where ) { return $where . ' AND 1=1 '; }
//attach your function to the posts_where filter
add_filter( 'posts_where' , 'useless_condition' );
//get posts AND make sure filters are NOT suppressed
$posts = get_posts( array( 'suppress_filters' => FALSE ) );
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |
© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/hooks/posts_where