早速、index.phpの構造を読み解いていきます。index.phpの構造は、まず一番外側に、<?php if (have_posts()) : ?>~<?php else : ? >~<?php endif; ?>のif文があります。have_posts()は投稿の有無を返す関数で、あればTrueをなければFalseを返します。このあたりの処理は日本語の情報としてSTANDING TALLさんの記事が良くまとまっています。
<?php if (have_posts() : ?>
…投稿のループ処理
<?php else : ?>
…投稿が存在しない場合の処理
<?php endif; ?>
次に、投稿を処理するループです。この部分は<?php while (have_posts()) : the_post(); ?>から始まり <?php endwhile; ?>で終了します。ループの中身は、post_class(), the_ID(), the_permalink(), the_title(), the_time(), the_content(), the_tags(), get_the_category_list(), edit_post_link(), comments_popup_link()を順にテンプレートタグを呼び出しています。動作を表にしました。それ以外も知りたい場合は、WordPressのテンプレートタグを参照してください。
| タグ名 | 概要 | ループ | パラメータ |
| post_class() | |||
| the_ID() | 現在の記事の記事ID を表示 | ループ中 | ー |
| the_permalink() | 現在の記事のパーマリンクURI を表示 | ループ中 | - |
| the_title() | 現在の記事のタイトルを表示/取得 | ループ中 | 表示/取得、前後テキスト |
| the_time() | 現在の記事の投稿日時を表示。フォーマットを指定しなければ一般設定「時間のフォーマット」で表示。 | ループ中 | 日時フォーマット |
| the_content() | 現在の記事の本文を表示。記事中に <!–more–> がある場合、単体記事ページ以外ではそれより前の部分を表示し「続きを読む」リンクを添える。 | ループ中 | 「続きを読む」の文言、 |
| the_tags() | 現在の記事のタグ一覧を表示 | ループ中 | 前・後・区切り文字 |
| get_the_category_list() | |||
| edit_post_link() | 現在の記事の編集リンクを表示 | ループ中 | リンク・前後テキスト |
| comments_popup_link() | コメントフォームのポップアップへのリンクを表示。 | ループ中 | コメント数表示テキスト、CSSクラス |

