W3cubDocs

/WordPress

WP_Query::set_found_posts( array $q, string $limits )

Sets up the amount of found posts and the number of pages (if limit clause was used) for the current query.

Parameters

$qarrayrequired
Query variables.
$limitsstringrequired
LIMIT clauses of the query.

Source

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'] );
	}
}

Hooks

apply_filters_ref_array( ‘found_posts’, int $found_posts, WP_Query $query )

Filters the number of found posts for the query.

apply_filters_ref_array( ‘found_posts_query’, string $found_posts_query, WP_Query $query )

Filters the query to run for retrieving the found posts.

Changelog

Version Description
3.5.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_query/set_found_posts