WP_Query::setup_postdata( WP_Post|object|int $post ): true

In this article

Sets up global post data.

Parameters

$postWP_Post|object|intrequired
WP_Post instance or Post ID/object.

Return

true True when finished.

Source

public function setup_postdata( $post ) {
	global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;

	if ( ! ( $post instanceof WP_Post ) ) {
		$post = get_post( $post );
	}

	if ( ! $post ) {
		return;
	}

	$elements = $this->generate_postdata( $post );
	if ( false === $elements ) {
		return;
	}

	$id           = $elements['id'];
	$authordata   = $elements['authordata'];
	$currentday   = $elements['currentday'];
	$currentmonth = $elements['currentmonth'];
	$page         = $elements['page'];
	$pages        = $elements['pages'];
	$multipage    = $elements['multipage'];
	$more         = $elements['more'];
	$numpages     = $elements['numpages'];

	/**
	 * Fires once the post data has been set up.
	 *
	 * @since 2.8.0
	 * @since 4.1.0 Introduced `$query` parameter.
	 *
	 * @param WP_Post  $post  The Post object (passed by reference).
	 * @param WP_Query $query The current Query object (passed by reference).
	 */
	do_action_ref_array( 'the_post', array( &$post, &$this ) );

	return true;
}

Hooks

do_action_ref_array( ‘the_post’, WP_Post $post, WP_Query $query )

Fires once the post data has been set up.

Changelog

VersionDescription
4.4.0Added the ability to pass a post ID to $post.
4.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.