black}Windows・Linuxを中心に書き留めるIT技術系の備忘録。2015.05.25この記事は約4分で読めます。the_post();」~「endwhile;」という記述があります。これは、WordPressの「メインループ」と言われるものです。その仕組みを少し調べて、ざっくりと理解してみます。今回のバージョンは以下です。「have_posts」、「the_post」メインループの中で使用するテンプレートタグ参考サイトWordPressの仕組みWordPressは、以下のようにリクエストされたURLによって、どのデータ・ページを表示するのかを判断します。「http://text.com/?page_id=3」...ID「3」の固定ページそして、それぞれURLへのリクエストによって取得されるデータを「メインクエリ」(WordPressクエリ)と呼びます。取得したデータは、「$wp_query」オブジェクトに保存されます。メインループ「$wp_query」オブジェクトに保存されたデータを取得・表示するためのループが、「メインループ」です。メインループの構文メインループの構文は、以下のようになります。?><p>記事がありません。?>「:」を使用しないPHP構文で記述した場合は、以下のようになります。{?><p>記事がありません。if?>「have_posts」、「the_post」このメインループで出てくるものは、以下の2つ。「have_posts」...「$wp_query」に表示させるデータがあるかチェック「the_post」...「$wp_query」から順にデータを取り出して「$post」へ格納し、次のデータへと進めるまず始めのif文の条件「have_posts()」で、「$wp_query」に表示させるデータがあるかチェックし、次のwhile文の繰り返し条件に「have_posts()」を使用することで、表示させるデータがある場合はループし続けます。次に、ループの先頭で「the_post()」によって、「$wp_query」からデータを1件取り出して「$post」へ格納し、「$wp_query」のデータを次へと進めます。後は繰り返しで、再びループの先頭で「the_post()」によって、次のデータを取り出してという流れで、最後まで取得・表示させるというわけです。それでこのような記述になるわけですね。メインループの中で使用するテンプレートタグメインループの説明は上記の通りで、取得したデータのタイトルや内容を表示したければ、そのメインループの中に出力させる処理を書けばいいんですね。タイトルや内容を出力するなら、このような感じです。?><p>記事がありません。?>ここでは、以下の2つを使用しました。「the_content」...現在の投稿の本文を表示これら2つは、メインループの中での使用が前提となっているテンプレートタグです。他にも、多くのテンプレートタグがあり、以下は代表的なものです。Codexを参照しましょう。説明の中に「このタグはループ内でのみ使えます。」といった記載があります。これらのテンプレートタグは、メインループの外では思ったとおりの結果が得られない可能性があります。WordPressテーマファイルを修正・作成する場合は、その箇所がメインループの中なのかどうか、テンプレートタグを調べる場合は、メインループの中で使用するのかどうかを意識しておきましょう。WordPressのメインループについては、以上です。WordPressの理解が少し深まりました。日本語版WordPressPHP\よかったらシェアしてね/Twitter1Facebook1はてブ0Pocket3LINEコピーえふめん大阪在住、30代。業務系SE・社内SEの仕事を通じて学んだこと、PCトラブルで困って調べたこと、手作業を効率化して改善したこと、WordPressのブログ運営などの記事を書いています。最新情報をお届けします。03:22教えてください。メインループは、どこから見られますか?初心者です。解説宜しくお願い致します。11:15>SAKURAさん見られるというのは、ソースコードのことでしょうか?でしたら、試用しているテンプレート内のsingle.phpやpage.phpに記述があると思いますよ。(テンプレートによって異なる)管理画面から確認するには、外観⇒テーマの編集です。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。ホームWordPressえふめん大阪在住、30代。業務系SE・社内SEの仕事を通じて学んだこと、PCトラブルで困って調べたこと、手作業を効率化して改善したこと、WordPressのブログ運営などの記事を書いています。プロフィールプライバシーポリシーお問い合わせサイトマップ検索タイトルとURLをコピーしました。