query_posts()
クエリパラメータを使用してループをセットする。
2023/10/06

query_posts()
は、ループを回す際に取得したい情報(クエリ)を設定してメインループを変更するというコードです。テーマやプラグインでの使用は目的とされていないので、可能な限り使用しないことが推奨されています。
使い方
query_posts( $query )
【返り値】投稿オブジェクトまたは投稿IDの配列。
パラメーター
-
$query (array | string) 必須
WP_Query引数の配列または文字列。
詳細・注意事項
もし query_posts()
が使用されている場合は wp_reset_query()
を使用します。このコードによって元のメインクエりが復元されます。
<?php
$args = [
'post_type' => 'post',
'posts_per_page' => 5,
];
query_posts($args);
query_posts('posts_per_page=10&cat=10&showposts=3');
if (have_posts()): while (have_posts()): the_post();
?>
<!-- 〜〜〜 投稿の表示 〜〜〜 -->
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php endif; ?>
query_posts()
はメインクエリをオーバーライドするもので、問題が発生する可能性が高くなります。公式でも「プラグインやテーマ、ループ内での使用すべきでない」と書かれています。
特定の投稿を取得する際には WP_Query
または get_posts()
を使用し、メインクエリを変更するのであれば pre_get_posts
での変更が推奨されています。