viewsループの基本的な使い方ワードプレスのテーマを自作する上では使いこなしが必須となる”ループ(関数)“。今回は、ループについて初級者の方でも分かりやすいように解説をしていこうと思います。まとめ覚えるループは3種類でOK!ワードプレスのループは、いくつか記述方法があります。す)これだけ覚えておけばOKです。「query_posts」というのもあるのですがこれは非推奨ということで省きます。以下では順番に特性と使い方を解説していきます。?>もっとも見慣れている基本的なループコードです。if分で格納されたページのデータ(クエリ)があるかどうかを判別し、あるならそれを取得してきます。詳しい解説ワードプレスではインデックスページやアーカイブページなどのテンプレートでは読み込みの際にメインループと呼ばれる投稿のループデータを自動で取得しています。このメインループのデータを使い表示させる方法になります。「index.php」や「archive.php」、「category.php」などのアーカイブテンプレートで使います。「single.php」など投稿ページでタイトルやコンテンツの表示にも用います。?>the_post()となんとなく似ています。・whileで回し、wp_reset_postdata()でリセットさせる詳しい解説ワードプレスがアーカイブテンプレートなどで自動でデータを取得するメインループとは違い、テンプレートに関係なく指定した条件でサブループと呼ばれる新たなループを生成するものになります。記事下の関連記事の一覧や、サイドバーの人気記事の一覧などに使えます。?>whileの代わりにforeachを使っているのが特徴です。「WP_Query」と同じサブループを生成するものになります。WP_Queryより細かいデータ取得条件の設定ができないものになり、タイトルの一覧だけを表示するようなシンプルなループに適しています。主な使用箇所フッターに表示させるお知らせの一覧など。)」というアクションフックの存在も覚えておくとさらに上級者へと近づきます。アクションフックとは?アクションフックとは、メインループのデータをデータベースに取りにいく段階であれこれ指示のするようなものです。pre_get_postsって何してくれるの?「pre_get_posts」は、メインループにアクションフックを付けられます。上記で紹介した「the_post()」をカスタムできるものと思ってください。サブループの「WP_Query」と「get_posts()」は関係ありません。pre_get_postsはどんな時に使う?では、「pre_get_posts」はどんなときに使うのでしょうか?それは、メインループを箇所によって違う指示を与えたいときです。使われるケースの事例などでいえば、「記事一覧は最大表示20件だけどカテゴリー一覧ページでは最大表示を10件にしたい」や、「検索結果ページで特定のカテゴリーの記事を除外したい」場合などです。重要なのが、pre_get_postsは「function.php」に記述するということです。以下は、function.phpの記述例です。'custom_query');後は、category.phpなどのテンプレートファイルでthe_post()を実行したときに反映されます。?>なぜpre_get_postsを使うのか?function.phpをいじってまで、なぜわざわざpre_get_postsを使うのか?これを理解すれば頭が整理できると思います。「the_post()」より詳細なループを生成したい場合など、サブループの「WP_Query」を使うことでも実現ができます。アーカイブのテンプレートファイルを読み込む際には、ワードプレスが自動でメインループのデータ(クエリ)を1回読み込んできます。これらのページでサブループを使うとわざわざ取ってきたデータを無駄にして、さらにもう一回データベースを読み込む作業をさせることになります。このことはサーバーへ負荷をかけるだけでなく、サイト表示も遅延させます。それらを避け、メインループを使うことを前提で各ページに詳細な指示を実現させるのが「pre_get_posts」を使う理由になります。まとめ以上、ループの種類や特性、記述方法のざっくりした解説でした。したら間違っていることもありますので、何かお気づきのことがあればお気軽にコメントください。ご質問などもお気軽にコメントください。次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。WING(コノハウイング)を使っていますよ。Reserved.ページの先頭に戻る。