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.
Method of the class: WP_Query{}
Hooks from the method
Return
null
. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->set_found_posts( $q, $limits );
- $q(array) (required)
- Query variables.
- $limits(string) (required)
- LIMIT clauses of the query.
Notes
- Global. wpdb. $wpdb WordPress database abstraction object.
Changelog
Since 3.5.0 | Introduced. |
WP_Query::set_found_posts() WP Query::set found posts code WP 6.7.1
private function set_found_posts( $q, $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 ( $q['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 / $q['posts_per_page'] ); } }