loop.phpの構造

loop.phpは、特定のカテゴリの場合の、独自テンプレート設定と、それ以外の汎用テンプレート設定部分に分かれて動作します。

デフォルトテンプレートでは、カテゴリ galleryとasidesがキーワードになり、それらのカテゴリに属する場合には、特別なレイアウトや内容を表示する(例えば、画像が自動的に表示されるみたいな)という考え方でできています。

これらのループと、前の記事次の記事の表示、レコードが存在しない場合の代替表示テンプレート機能で構成されます。

if ( $loop->max_num_pages > 1 ) : ?>
<div id="nav-above" class="navigation">
nav-previous リンク、nav-nextリンクの組み立て
</div>
< ?php endif; ?>

< ?php if ( ! $loop->have_posts() ) : ?>
<div id="post-0" class="post error404 not-found">
レコードが見つからない場合の、コンテンツ、
検索窓
	</div>
< ?php endif; ?>

< ?
	/* Start the Loop.*/

 while ( $loop->have_posts() ) : $loop->the_post(); ?>

< ?php if ( in_category( _x('gallery', 'gallery category slug', 'twentyten') ) ) : ?>
gallery等のカテゴリを含む場合の表示設定

<h2 class="entry-title">タイトル</h2>

<div class="entry-meta">twentyten_posted_onからの返り値</div>

<div class="entry-content">
パスワード保護があるときには、the_content そうでない場合は、ギャラリから最初のイメージを取り出して、<div class="gallery-thumb">画像</div>このギャラリは、○舞の画像を含んでいます。として、概要(the_excerpt)を表示する。
</div>

<div class="entry-utility">
tag linkなどを表示
</div>

< ?php elseif ( in_category( _x('asides', 'asides category slug', 'twentyten') ) ) : ?>
asides等のカテゴリを含む場合の表示設定

<div id="post-<?php the_ID(); ?>" < ?php post_class(); ?>>

もし、アーカイブあるいは、検索ならば、コンテンツには
<div class="entry-summary">概要(the_excerpt)</div>
そうでなければ、
<div class="entry-content">本文(the_content)</div>

<div class="entry-utility">
tag linkなどを表示
</div>

</div>

< ?php else : ?>

<div id="post-<?php the_ID(); ?>" < ?php post_class(); ?> style="border:1px solid #ccc;">

<h2 class="entry-title">タイトル</h2>
<div class="entry-meta" >twentyten_posted_on</div>

もし、アーカイブあるいは、検索ならば、コンテンツには
<div class="entry-summary">概要(the_excerpt)</div>
そうでなければ、
<div class="entry-content">本文(the_content)</div>

<div class="entry-utility">
tag linkなどを表示
</div>

</div>

< ?php comments_template( '', true ); ?>

< ?php endif; ?>

< ?php endwhile; ?>
クエリをリセットする
< ?php wp_reset_query(); ?>

if ( $loop->max_num_pages > 1 ) : ?>
<div id="nav-above" class="navigation">
nav-previous リンク、nav-nextリンクの組み立て
</div>
< ?php endif; ?>