1. TOP
  2. web
  3. wordPress
  4. メインクエリと$post

メインクエリと$post

|

WordPressのテーマ開発をするなら、やはりWordPressの仕組みを知った方がいいに違いない。断片的な事でも、「おっ」と引っかかったらメモして行こうと思う。以下は、$postや$wp_query、ループについて、エビスコムのWordPressステップアップブック(kindle版)からの要約。

これで、少し腑に落ちたというか、感じがつかめた気がするというか。

WordPressはURLの指示に従ってデータベースからデータを読み出す。この処理は「メインクエリ」と呼ばれ、WordPressがページを生成する時の根幹となる。個別ページを表示したい場合は、指示された一つの記事に関するデータが読み込まれ、$wp_queryと$post(A)にセットされる。この時、$wp_queryには記事の総数などの付加情報もセットされる。

ループ処理では、$wp_queryに記事データがあるかどうかをチェックし、ある場合は取り出して$post(B)にセットする。

個別ページにアクセスした直後は、$post(A)と$post(B)の中身が一致するため、$postのみを参照するテンプレートタグや関数は、ループの外に記述しても機能する。ただし、$post(A)の中身は、WordPressの処理に応じて変化するため、テンプレートタグや関数を使用するタイミングで目的の状態である保証はない。

一方、$post(B)の中身は$wp_queryからセットされる。$wp_queryはメインクエリの処理結果を保持するためのもので、基本的に中身が変化することはなく、$post(B)には目的の記事がセットされる。