WP_Query::the_post()
- Since
- 1.5.0
- Source
wp-includes/class-wp-query.php:3685
Sets up the current post.
Description
Retrieves the next post, sets up the post, sets the 'in the loop' property to true.
Hooks fired · 1
One hook fires while WP_Query::the_post() runs, in this order:
Uses · 5
- _prime_post_caches()Adds any posts from the given IDs to the cache that do not already exist in cache.
- update_post_author_caches()Updates post author user caches for a list of post objects.
- do_action_ref_array()Calls the callback functions that have been added to an action hook, specifying arguments in an array.
- WP_Query::next_post()Sets up the next post and iterate current post index.
- WP_Query::setup_postdata()Sets up global post data.
Source
public function the_post() { global $post; if ( ! $this->in_the_loop ) { // Only prime the post cache for queries limited to the ID field. $post_ids = array_filter( $this->posts, 'is_numeric' ); // Exclude any falsey values, such as 0. $post_ids = array_filter( $post_ids ); if ( $post_ids ) { _prime_post_caches( $post_ids, $this->query_vars['update_post_term_cache'], $this->query_vars['update_post_meta_cache'] ); } $post_objects = array_map( 'get_post', $this->posts ); update_post_author_caches( $post_objects ); } $this->in_the_loop = true; $this->before_loop = false; if ( -1 == $this->current_post ) { // Loop has just started. /** * Fires once the loop is started. * * @since 2.0.0 * * @param WP_Query $query The WP_Query instance (passed by reference). */ do_action_ref_array( 'loop_start', array( &$this ) ); } $post = $this->next_post(); $this->setup_postdata( $post ); }History
Introduced in 1.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 6.7.7 tag, from
src/wp-includes/class-wp-query.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.