the_post()


WordPressのthe_post()関数は、ループ内で現在の投稿をセットアップし、次の投稿に進むために使用されます。この関数は、投稿データをグローバル変数$postにセットし、テンプレートタグが正しく動作するようにします。

構文

the_post();
  • the_post()は引数を受け取りません。

例1: 基本的なループでの使用

これは、WordPressのループ内でthe_post()を使用する基本的な例です。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); the_title(); the_content(); endwhile; endif; ?>

例2: カスタムクエリでの使用

カスタムクエリを使用して特定の投稿を取得し、the_post()でセットアップします。

<?php $custom_query = new WP_Query( 'cat=3' ); if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); the_title(); the_content(); endwhile; endif; wp_reset_postdata(); ?>

例3: ループ外での使用

ループ外で特定の投稿をセットアップするためにthe_post()を使用します。

<?php global $post; $post = get_post( get_option( 'page_for_posts' ) ); setup_postdata( $post ); the_title(); the_content(); wp_reset_postdata(); ?>

例4: カスタム投稿タイプでの使用

カスタム投稿タイプの投稿を取得し、the_post()でセットアップします。

<?php $args = array( 'post_type' => 'custom_post_type' ); $custom_query = new WP_Query( $args ); if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); the_title(); the_content(); endwhile; endif; wp_reset_postdata(); ?>

例5: ページネーションとの併用

ページネーションを使用しながらthe_post()で投稿を表示します。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); the_title(); the_content(); endwhile; the_posts_pagination(); endif; ?>

注意点

  • the_post()を使用する際は、必ずループ内で使用するか、setup_postdata()と併用してグローバル変数$postを正しくセットアップしてください。
  • カスタムクエリを使用する場合は、wp_reset_postdata()を呼び出してメインクエリをリセットすることを忘れないでください。

関連機能: