wp_reset_postdata()
the_post() の投稿記事をリセットする
2025/08/09
WP_Query や get_posts() などを使用してサブループを回した場合、グローバル変数である $post やメインクエリを主体とした様々な情報を更新しています。サブループの状態のままにすることによって意図せずエラーになってしまうこともあるため初期状態に戻すようにします。
wp_reset_postdata() はサブループを回す際に取得したデータをメインクエリの状態に戻すためのテンプレートタグです。
使い方
PHP
wp_reset_postdata()返り値、パラメータはありません
【使用例】
PHP
<?php
// 取得したい投稿内容
$args = array(
'post_type' => 'my_posts',
'posts_per_page' => 3,
'category' => '10',
'no_found_rows' => true;
);
// オブジェクト取得
$my_posts = new WP_Query($args);
// ループの開始
while ($my_posts->have_posts()):
$my_posts->the_post();
?>
<!-- 表示させたい投稿内容 -->
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
<!-- 投稿表示終了。メインクエリの値に戻す -->
<?php endwhile; wp_reset_post_data();?>