WordPressのメインクエリとサブクエリを理解するのは、初心者にとって難しく感じることがあるかと思います。
この記事では、身近な例え話を使いつつ、初心者でも理解しやすいように解説してみます!
■ メインクエリは、「自分の部屋」
あなたがアパートに住んでいると想像してください。
メインクエリは、あなたの部屋です。
あなた部屋なので、部屋の鍵を使って自由に入ることができ、部屋の中の物も自由に使えますね。
こんな感じで、まずはメインクエリ=あなたの部屋ということを抑えておいてください。
メインクエリ=あなたの部屋=自由に入り、物を自由に使える
■ サブクエリは、「他の人の部屋」
一方でサブクエリは、「他の人の部屋」です。
仮に、他の人の部屋にあるものを使いたい場合は、お願いしなければいけませんよね。誰の部屋の物をを使いたいのか、何を使いたいのか、といった具合に具体的に決めて、その人に依頼する必要があります。
こんな感じで、サブクエリ=他の人の部屋ということを抑えておいてください。
サブクエリ=他の人の部屋=依頼する必要がある
それでは、これまでの例え話を頭に入れつつWordPressのお話に入っていきましょう。
■ メインクエリとは
メインクエリは、「開いたページに関連する情報をそのまま使うことができる」といったものです。
例えば、「1月25日のブログ記事」を開いたとしましょう。
すると、「1月25日のブログ記事」の”タイトル”、”本文”、”投稿日”などの情報がページにアクセスした時点で自動で取得されているので、わざわざ取得しなくても使うことができます。
つまり、ここでいうURLは「あなたの部屋の鍵」であり、ページは「あなたの部屋」といえます。
そして、このページのあらゆる情報(タイトルとか本文とか)は「あなたの部屋にある物」であり、とくに依頼とかしなくても自由に使えるといったイメージです。
(のちほど、実際のコードも見てみましょう)
■ サブクエリとは
メインクエリで取得できない情報を使いたい場合に「サブクエリ」を使います。
例えば「1月25日のブログ記事」ページのサイドバーに「過去の記事一覧」を表示するとかいった場合です。
「あなたの部屋」には「1月25日のブログ記事」の情報しかなく、その他の「過去の記事」を使うには「他の人の部屋」から借りてこなくてはなりません。
この場合、サブクエリを使って、「誰の=ブログ記事の」「何が=過去記事の情報」ほしいのかを具体的に指定して取得する必要があります。
このように、メインクエリにはない情報を追加で指定して取得することをサブクエリと言います。(厳密には、クエリのことを「問い合わせ」とか言ったりします)
■ さいごに実際のコードを確認してみましょう
✓ メインクエリのコード
✓ サブクエリのコード
いかがでしたでしょうか。
完全に理解して頂くのは難しいかもですが、イメージを掴んで頂くことで、どんな時がメインクエリで、どんな時にサブクエリが必要になるのかを判断できるようになったらいいなぁと思います!