the_post()
※the_postはWP_Queryクラスのメソッド
ループ内のみで使用可能。
構文
the_post()
the_post()の詳細
動 作
$wp_queryのメソッド$postを設定する。
グローバル変数$postを設定する。
グローバル変数$wp_queryから順番にデータを取り出しす。
取り出した1件分のデータをグローバル変数$postに格納する。
$wp_queryから1投稿分の投稿データを順に取り出す。
取り出した1件分の投稿データを$postに保存する。
$current_postプロパティの値を1増やす。
※$postはWP_Query のプロパティ。
返り値
なし
引 数
なし
the_post()のコード
参照:wp-includes/class-wp-query.php
<?php public function the_post() { global $post; $this->in_the_loop = true; if ( $this->current_post == -1 ) { // loop has just started do_action_ref_array( 'loop_start', array( &$this ) ); } $post = $this->next_post(); $this->setup_postdata( $post ); } public function next_post() { $this->current_post++; $this->post = $this->posts[ $this->current_post ]; return $this->post; } 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']; do_action_ref_array( 'the_post', array( &$post, &$this ) ); return true; } ?>
$thisは$wp_queryを指す。