ワードプレスでのサイト構築はループに始まりループに終わると言っても過言ではありません。
というわけでループについて簡単にまとめておきます。

基本ループ

<?php if(have_posts()): while(have_posts()): the_post(); ?>
//ほげほげ
<?php endwhile; endif; ?>

普通のブログであれば、大抵はこれだけで済みます。
現在のページ(トップページ、カテゴリページなど)に適合した投稿内容を表示してくれます。

have_posts()
表示すべき投稿記事があれば「true」を返し、なければ「false」を返します。表示対象となる投稿記事はページに依存します。
the_post()
投稿情報を読み込み、その情報をカスタムタグ(the_contentなど)で使えるように準備します。

基本ループをカスタマイズ

基本ループで呼び出される投稿は、デフォルトではそのページ(トップページ、カテゴリページなど)に依存しますが、基本ループの直前にこのコードを記述すると投稿を呼び出す条件が変更されます。

<?php query_posts($query_string.'&posts_per_page=5&cat=1,3'); ?>

上記だと、カテゴリID1または3に属する投稿が5件毎に呼び出されます。

query_posts()
基本ループで呼び出す投稿の条件(デフォルトはページに依存)を指定する。
$query_string
主に現在の表示ページ数などを表わす文字列。ページナビゲーションを利用する場合などに必須なので、特に問題が無ければ最初から付けておくとよいです。

ただし、この方法は条件分岐タグ(is_home()、is_category()など)の動作に影響を与えるので注意が必要です。

マルチループ

自由に投稿一覧を表示させたい場合は以下のループを使用します。

<?php $myposts = get_posts('numberposts=5&category=1'); ?>
<?php foreach($myposts as $post): ?>
<?php setup_postdata($post); ?>
//ほげほげ
<?php endforeach; ?>
get_posts()
ページに関係なく任意の投稿記事を読み込み、その情報を使えるように準備する。対象となる投稿記事は引数で指定する。
setup_postdata()
投稿データをカスタムタグ(the_contentなど)経由で呼び出せるように準備する。基本ループの「the_post()」に相当。あるいはこれは使用せず、「<?php echo $post->ID; ?>」という風に投稿データを直接呼び出してもよいです。

細かい挙動については、また個別にエントリを書こうと思います。