wp_reset_query() の使い方|説明・引数・注意点

説明

wp_reset_query() は、query_posts() で変更したメインクエリを元に戻す関数です。

基本構文

wp_reset_query(): void

引数

引数はありません。

戻り値

戻り値はありません。

使い方(サンプル)

query_posts( 'posts_per_page=3' );
// ループ処理
wp_reset_query();

注意点

  • query_posts() 自体が非推奨に近い使い方のため、通常は使いません。代わりに pre_get_posts フックを使います。

実務での使いどころ

  • query_posts() を使った後に、元のメインクエリに戻すとき。
  • 古いテーマを修正するとき、query_posts() が使われていた箇所の後始末。

よくあるミスと対処

  • WP_Query のサブクエリの後に、これを使っている。サブクエリの後は wp_reset_postdata() で足りる。
  • そもそも query_posts() を使っている。メインクエリを変更するときは、pre_get_posts フックを使う。

NG例

query_posts( 'posts_per_page=3' );
while ( have_posts() ) {
	the_post();
}
// 元に戻していない

OK例

query_posts( 'posts_per_page=3' );
while ( have_posts() ) {
	the_post();
}
wp_reset_query(); // 新しく作るなら、pre_get_posts を使う

使い分け早見表

場面 使うもの
query_posts のあと wp_reset_query()
WP_Query のあと wp_reset_postdata()
メインクエリの条件を変えたい pre_get_posts フック

関連項目

wp_reset_postdata()、query_posts()

公式リファレンス:wp_reset_query() | Function | WordPress Developer Resources

コメント

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