WP_Query::set_found_posts
Sets up the amount of found posts and the number of pages (if limit clause was used) for the current query.
Метод класса: WP_Query{}
Хуки из метода
Возвращает
null. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->set_found_posts( $query_vars, $limits );
- $query_vars(массив) (обязательный)
- Query variables.
- $limits(строка) (обязательный)
- LIMIT clauses of the query.
Заметки
- Global. wpdb.
$wpdbWordPress database abstraction object.
Список изменений
| С версии 3.5.0 | Введена. |
Код WP_Query::set_found_posts() WP Query::set found posts WP 6.9.1
private function set_found_posts( $query_vars, $limits ) {
global $wpdb;
/*
* Bail if posts is an empty array. Continue if posts is an empty string,
* null, or false to accommodate caching plugins that fill posts later.
*/
if ( $query_vars['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) ) {
return;
}
if ( ! empty( $limits ) ) {
/**
* Filters the query to run for retrieving the found posts.
*
* @since 2.1.0
*
* @param string $found_posts_query The query to run to find the found posts.
* @param WP_Query $query The WP_Query instance (passed by reference).
*/
$found_posts_query = apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) );
$this->found_posts = (int) $wpdb->get_var( $found_posts_query );
} else {
if ( is_array( $this->posts ) ) {
$this->found_posts = count( $this->posts );
} else {
if ( null === $this->posts ) {
$this->found_posts = 0;
} else {
$this->found_posts = 1;
}
}
}
/**
* Filters the number of found posts for the query.
*
* @since 2.1.0
*
* @param int $found_posts The number of posts found.
* @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->found_posts = (int) apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
if ( ! empty( $limits ) ) {
$this->max_num_pages = (int) ceil( $this->found_posts / $query_vars['posts_per_page'] );
}
}