Blog スタッフブログ

WEB制作

WordPressのメインループとは

WordPressのメインループとは、投稿(記事)を取得して表示するためのコードです。
テーマのテンプレートファイル内で使われるこのループは、データベースから投稿を取得して記事の表示を行います。

メインループの基本的な役割は、以下の通りです。

  1. データベースから投稿を取得する
  2. 取得した投稿を順に表示する
  3. 各投稿に対して、指定されたテンプレートを適用する

これにより、ホームページ、アーカイブページ、シングルページなど、様々なページにおいて投稿を表示することができます。

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
	the_title('<h2>', '</h2>');
	the_content();
endwhile;
else :
	echo '<p>投稿が見つかりませんでした。</p>';
endif;
?>

上記が基本形で、アーカイブページ(カテゴリーアーカイブ、タグアーカイブ、日付アーカイブなど)でメインループを使用する際は適宜コードを追加します。

<?php if ( have_posts() ) : ?>
    <div class="post-list">
        <?php while ( have_posts() ) : the_post(); ?>
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <header class="entry-header">
                    <?php the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
                </header>
                <div class="entry-content">
                    <?php the_excerpt(); ?>
                </div>
                <footer class="entry-footer">
                    <a href="<?php the_permalink(); ?>" class="read-more">記事の詳細へ</a>
                </footer>
            </article>
        <?php endwhile; ?>
    </div>
    <?php the_posts_pagination(); ?>
<?php else : ?>
    <p>投稿が見つかりませんでした。</p>
<?php endif; ?>

このコードは、アーカイブページでの投稿リストを表示するための基本的な構造を示しています。
以下は各部分の説明です.

have_posts():投稿が存在するかどうかをチェック
the_post():次の投稿データをセットする
the_title():投稿のタイトルを表示する
the_excerpt():投稿の抜粋を表示する
the_permalink():投稿のリンクを表示する
the_posts_pagination():投稿のページネーションを表示する

このテンプレートを使うことで、アーカイブページにおいて投稿のリストを表示することができます。各投稿はタイトル、抜粋、そして「続きを読む」リンクとともに表示されます。