WordPressでは、クエリ結果(≒表示すべき記事の情報)を、$wp_queryと$wp_the_queryの2つの変数で管理しています。
この2つの違いは下記のとおりです。
メインクエリの結果:$wp_the_query
現在処理しているクエリ結果: $wp_query
具体的には以下のプログラムのコメントのような感じで、$wp_queryの値が変わっていきます。
// カテゴリ1の記事最新5件を検索
// この時点では、$wp_the_queryと$wp_queryの内容は同じ
query_post('cat=1&order=DES&number=1');
// 取得した記事をすべて処理するまで繰り返し
wihle( have_posts() ) {
// 検索した結果からデータを1レコードフェッチして、作業中記事を$wp_queryグローバル変数にセット
// この時点で、$wp_the_queryと$wp_queryの内容は異なる。
the_post();
// セットされた$wp_queryグローバル変数より、記事のタイトルを取得する
echo the_title();
}
wp_reset_query(); // wp_queryの内容を$wp_the_queryに戻す
普通だと
$wp_query = the_post();
といった形で、DBからfetchしたレコードを戻り値として取るところですが、the_post()がfetchした結果をグローバル変数に保存していると考えると分かりやすいです。
関連記事
コメントを残す