「メインループ」の定義は何ですか?
-
こんにちは。
自分で本を片手にテンプレートを作成中です。
トップページには固定ページを持ってきており、カテゴリー別にデザインを作成中です。
それぞれのカテゴリーのページに、ループ( <?php if(have_posts()): while(have_posts()): the_post(); ?> <?php endif; ?> )を二つ使用し、それぞれの前にquery_postsを使って、表示数とカテゴリーを指定していました。wordpressのカスタマイズ方法を書いた本に書かれているものを応用したので、大丈夫だと思ってました。ところが、このやり方ではきちんと機能してないことが分かり(表示数が指定したようにならなかった)、調べていたら、codexのquery_postsのところに、以下のように書いてありました。
“query_posts() 関数はメインの WordPress ループだけを変更するためのものです。新たなループを作るためのものではありません。メインループの他にループが必要な場合は、get_posts() を使ってください。メインループの他で query_posts() を使用すると、メインループが不正な状態になり期待する結果が得られません。
query_posts() 関数はページのメインクエリを上書きし、置き換えます。他の目的で使用しないでください。”codexを読んでいって、ひとつめのループ手前のquery_postsを、wp_reset_queryでリセットし、ふたつめのループのカテゴリと表示数の指定を、query_postsではなくget_postsに変えたところ、思うように表示されるようになったのですが、いまだ上記の説明文が自分で理解できません。なので、なぜ問題が解決したのか、本当に解決したのか、分からないです。
メインループというのは、どのループをさすのでしょうか?
ひとつのサイトにつきメインループはひとつしか存在しないということですか?それとも、category.phpや single.phpなど、各テンプレートにつき、ひとつずつということですか?メインループと、そうでないループの違いは何ですか?query_postsはひとつのテンプレートにつき一度しか使えないのでしょうか?どうぞ宜しくお願いします。
- トピック「「メインループ」の定義は何ですか?」には新たに返信することはできません。