WP_Query::have_posts
Determines whether there are more posts available in the loop.
Calls the loop_end action when the loop is complete.
Method of the class: WP_Query{}
Hooks from the method
Returns
true|false. True if posts are available, false if end of the loop.
Usage
global $wp_query; $wp_query->have_posts();
Changelog
| Since 1.5.0 | Introduced. |
WP_Query::have_posts() WP Query::have posts code WP 6.8.3
public function have_posts() {
if ( $this->current_post + 1 < $this->post_count ) {
return true;
} elseif ( $this->current_post + 1 === $this->post_count && $this->post_count > 0 ) {
/**
* Fires once the loop has ended.
*
* @since 2.0.0
*
* @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'loop_end', array( &$this ) );
// Do some cleaning up after the loop.
$this->rewind_posts();
} elseif ( 0 === $this->post_count ) {
$this->before_loop = false;
/**
* Fires if no results are found in a post query.
*
* @since 4.9.0
*
* @param WP_Query $query The WP_Query instance.
*/
do_action( 'loop_no_results', $this );
}
$this->in_the_loop = false;
return false;
}