PHP ループ
ワードプレスで頻繁に使用されるPHPの文法について説明します。
while ( have_posts() ) : the_post();
// ループ内のコード
endwhile;
have_posts()
は、処理すべき投稿がまだ残っているかどうかをチェックする関数です。the_post()
は、次の投稿のデータをセットアップします。
have_posts()
が true
を返す限り、ループは続きます。
各ループで the_post()
が呼び出され、次の投稿のデータが準備されます。全ての投稿が処理されると、have_posts()
が false
を返し、ループが終了します。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
?>
<h2><?php the_title(); ?></h2>
<div class="content">
<?php the_content(); ?>
</div>
<?php
endwhile;
else :
echo '<p>投稿が見つかりません。</p>';
endif;
?>
ループ内で the_title()
, the_content()
などの関数を使用して、各投稿のデータにアクセスできます。
<?php
// 基本的なWordPressループの構造
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// 各投稿のコンテンツを表示
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="header">
<h2 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</header>
<div class="content">
<?php the_excerpt(); ?>
</div>
<footer class="footer">
<?php
echo 'カテゴリー: ';
the_category(', ');
echo ' | 投稿日: ';
the_time('Y-m-d');
?>
</footer>
</article>
<?php
endwhile;
// ページネーション
the_posts_navigation();
else :
// 投稿が見つからない場合
?>
<p>投稿が見つかりません。</p>
<?php
endif;
?>
if ( have_posts() )
: 投稿があるかチェックします。
while ( have_posts() ) : the_post();
: 各投稿に対してループを実行します。
endwhile;
: ループの終了を示します。
else:
: 投稿が見つからない場合の処理。
have_posts()
: 処理すべき投稿が残っているかチェックします。
the_post()
: 次の投稿のデータをセットアップします。
the_ID()
: 現在の投稿のIDを表示します。
the_permalink()
: 投稿へのパーマリンクを取得します。
the_title()
: 投稿のタイトルを表示します。
the_excerpt()
: 投稿の抜粋を表示します。
the_content()
: 投稿の全文を表示します。
the_category()
: 投稿のカテゴリーを表示します。
the_time()
: 投稿日時を表示します。
post_class()
: 投稿に適切なCSSクラスを追加します
the_posts_navigation()
: 前後のページへのリンクを表示します。