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
Return
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.7.1
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; }