【初級編】ページの情報はループの中にある?クエリーについて

こんにちわ!
前回に引き続き、WordPressのお話しになります。
(それだけ触る機会とご質問が非常に多いです・・・)

今回は「クエリー(query)」になります。
似たような意味で「ループ(loop)」を調べる方が多いですが、クエリーを理解するとWordPressが非常に簡単に思えるのでしっかりマスターしたいですね。
前回のWordPressでハマりがちな「カスタム○○○○」と「タクソノミー」を知るとより理解できると思いますので、是非一緒に読んでみてください。

記事(ページ)についておさらい

まずWordPressには「投稿タイプ(ポストタイプ)」が存在します。
インストールしただけのWordPressでは「投稿(post_type=”post”)」と「固定ページ(post_type=”page”)」があり、基本部分は同じものになります。
違いとしては、投稿は親子関係を持つことができないので、一連の塊のように見え固定ページは親子関係を持つことができるので、個々に存在しているように見えます。
またWordPressの記事(投稿&固定ページ)は全てIDとスラッグ(slug)が振られており、重複することはありません。

それらの記事の情報を表示したいときに使うのが「ループ処理」になります。
ループ処理は、条件に一致する限り、記事情報を表示してくれるので、(ループ=繰り返し=複数と思われがちですが)1つでも3つでも10つでもループ処理と呼ばれます。

ループ処理は書き方、大切なのはクエリーについて

ではなぜ、ループ処理が必要かというと、記事情報を表示するための条件(=クエリー)が表示しているページ(URL)によって違うからとなります。

例えば、ブラウザで「http://https://akros-ac.jp/_wp/blog/」(ブログ一覧ページ)を開いたとします。
WordPressでは、開いたページの種類をURLから判定しますので、今回の例では「記事の一覧ページ」となり、テンプレートでは「archive-blog.php」→「archive.php」→「index.php」の順番にテンプレートを探し、ページを表示しようとします。
記事情報を表示する条件が「post_type=”blog”」となり、表示(ループ処理)のタイミングで条件に一致する全ての記事を表示します。
もし条件に「表示件数:10件」が追加されたら、「blogの記事を10件表示する」という条件になります。

もう1つ別の例として、「http://https://akros-ac.jp/_wp/blog/8491/」(ブログ記事ページ)を開いたとします。
今回は「記事の詳細ページ(記事ページ)」となりますので、テンプレートでは「single-blog.php」→「single.php」→「index.php」の順番に探し、表示します。
記事情報の条件は「post_type=”blog”」の他に「ID=”8491″」となり、IDは重複しないことから、全ての記事=1つの記事を表示します。

テンプレートファイルの大切さ

このように条件(クエリー)によって、表示する内容が決まりますが、基本的にはテンプレートファイルによってクエリーの判定はWordPress側で勝手に判定してくれます。
なのでWordPressのテンプレートファイルの名前に優先順があり、名前によって表示するページが異なることになります。

もしテンプレートと別の内容を表示したい場合(固定ページの中に投稿一覧を表示したい等)は、
「メインループを変更する」「サブループを使う」などと言われますが、ようはこのクエリを変更するということになります。

最後に

今回は「クエリー」の説明のみとなりますが、次回は実際のループの記述方法やクエリーの変更(呼び出し方と条件)などをご説明したいと思います。
難しく感じる内容ですが、実際にWordPressに触れながら行うと理解しやすい内容と思いますので、チャレンジしてみてください!