WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Шаблоны сайтов на русском
функция не описана

WP_Query::setup_postdata() WP 4.1.0

Set up global post data.

Это метод класса: WP_Query

  • Global. Число. $id
  • Global. WP_User. $authordata
  • Global. Строка/Число/true/false. $currentday
  • Global. Строка/Число/true/false. $currentmonth
  • Global. Число. $page
  • Global. Массив. $pages
  • Global. Число. $multipage
  • Global. Число. $more
  • Global. Число. $numpages
  • C версии 4.4.0 Added the ability to pass a post ID to $post.
Хуки из метода
Возвращает

true. True when finished.

Использование

$WP_Query = new WP_Query();
$var = $WP_Query->setup_postdata( $post );
$post(WP_Post/объект/число) (обязательный)
WP_Post instance or Post ID/object.

Код WP Query::setup postdata: wp-includes/class-wp-query.php VER 5.1.1

<?php
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;
	}

	$id = (int) $post->ID;

	$authordata = get_userdata( $post->post_author );

	$currentday   = mysql2date( 'd.m.y', $post->post_date, false );
	$currentmonth = mysql2date( 'm', $post->post_date, false );
	$numpages     = 1;
	$multipage    = 0;
	$page         = $this->get( 'page' );
	if ( ! $page ) {
		$page = 1;
	}

	/*
	 * Force full post content when viewing the permalink for the $post,
	 * or when on an RSS feed. Otherwise respect the 'more' tag.
	 */
	if ( $post->ID === get_queried_object_id() && ( $this->is_page() || $this->is_single() ) ) {
		$more = 1;
	} elseif ( $this->is_feed() ) {
		$more = 1;
	} else {
		$more = 0;
	}

	$content = $post->post_content;
	if ( false !== strpos( $content, '<!--nextpage-->' ) ) {
		$content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content );
		$content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content );
		$content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content );

		// Remove the nextpage block delimiters, to avoid invalid block structures in the split content.
		$content = str_replace( '<!-- wp:nextpage -->', '', $content );
		$content = str_replace( '<!-- /wp:nextpage -->', '', $content );

		// Ignore nextpage at the beginning of the content.
		if ( 0 === strpos( $content, '<!--nextpage-->' ) ) {
			$content = substr( $content, 15 );
		}

		$pages = explode( '<!--nextpage-->', $content );
	} else {
		$pages = array( $post->post_content );
	}

	/**
	 * Filters the "pages" derived from splitting the post content.
	 *
	 * "Pages" are determined by splitting the post content based on the presence
	 * of `<!-- nextpage -->` tags.
	 *
	 * @since 4.4.0
	 *
	 * @param string[] $pages Array of "pages" from the post content split by `<!-- nextpage -->` tags.
	 * @param WP_Post  $post  Current post object.
	 */
	$pages = apply_filters( 'content_pagination', $pages, $post );

	$numpages = count( $pages );

	if ( $numpages > 1 ) {
		if ( $page > 1 ) {
			$more = 1;
		}
		$multipage = 1;
	} else {
		$multipage = 0;
	}

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

	return true;
}