WP_Query::the_post クラスの使い方|説明・引数・注意点

説明

WP_Query::the_post は、サブループで、次の投稿に進めるメソッドです。

基本構文

$query->the_post()

引数

引数はありません。

戻り値

戻り値はありません。

使い方(サンプル)

while ( $q->have_posts() ) {
	$q->the_post();
	the_title();
}

注意点

  • グローバルの $post が更新され、the_title() などが使えるようになります。
  • 終わったら wp_reset_postdata() を呼びます。

実務での使いどころ

  • new WP_Query で作った、一覧のループの中で、次の投稿を、取り出すとき。

よくあるミスと対処

  • メインクエリ用の、the_post() を使っている。サブクエリでは、$query->the_post() を使う。
  • ループのあとに、wp_reset_postdata() を呼ばない。
  • have_posts() と、$query->have_posts() を、取り違える。

NG例

$q = new WP_Query( $args );
while ( $q->have_posts() ) {
	the_post(); // メインクエリの the_post() で、無限ループになる
}

OK例

$q = new WP_Query( $args );
while ( $q->have_posts() ) {
	$q->the_post();
	the_title();
}
wp_reset_postdata();

使い分け早見表

場面 使うもの
メインクエリのループ the_post()
サブクエリのループ $query->the_post()
サブクエリのあとに、元に戻す wp_reset_postdata()

関連項目

WP_Query、wp_reset_postdata()、have_posts()

公式リファレンス:WP_Query::the_post | WordPress Developer Resources

コメント

タイトルとURLをコピーしました