こんにちは。
WordPressにおけるループの基本構文は、
lang
1<?php if (have_posts()) : ?>
2 <?php while (have_posts()) : the_post(); ?>
3 <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
4 <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
5 <?php the_content(); ?>
6 </div>
7 <?php endwhile; ?>
8<?php endif; ?>
といった感じでしょうか。
tatsuyoshiさんが示してくれた page.phpも(多少の違いはありますが)基本的な構造はおなじです。
WordPressでは、このループ構文を記述すれば、トップページのほか、個別記事、投稿記事一覧、固定ページ、検索など、それぞれのページに必要な内容が表示されます。
しかし、このループ構文には、それぞれのページに表示する「XXXの内容(データ)を取得する」という条件がどこにもありません。
その役割を担っているのが、wp-includes/query.php に定義されている WP_QUeryというクラスです。
WP_Queryは、WordPress内の特定の URLにアクセスするだけで、そのページに必要なデータを自動的に取得して、グローバル変数 $wp_query(説明は省きます)に格納してくれます。これが WordPressのかしこいところです。
page.phpが指定されれば固定ページであることを自動的に判断してそれに関連するデータを取得して表示する、また single.phpが指定されればひとつの記事を表示するといった具合です。おなじループ構文であっても、そのページに必要な内容(データ)しか表示されないようになっています。
そのおかげで、僕たちは、ページごとに異なるコーディングをする労力を、コンテンツの充実などといった他のクリエイティブな作業へと振り向けることができるのです。
以上、ご参考いただければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。