WordPress内のwhile文を使ったループ内で一覧の最初と最後だけ特定の要素を表示する方法

WordPress内のwhile文を使ったループ内で一覧の最初と最後だけ特定の要素を表示する方法

WordPress内のwhile文を使ったループ内で一覧の最初と最後だけ特定の要素を表示する方法

WordPress内のwhile文を使ったループ内で一覧の最初と最後だけ特定の要素を表示する方法
最終更新日:2020.08.26

WordPressでサイトを作っているとループの最初と最後だけ特定のタグを追加したいという時がやってきます。
リストは</p> <li>タグでループしたらOKだけど <ul>タグは1回でいいなぁ〜
なんて時はPHPの配列で先頭もしくは後尾を簡単に取り出せる reset() end()を使ってみましょう!

while文での使い方

ループごとに+1されていく$iと記事のカウント総数や初回を判別して振り分けるよ!

コピー


<?php
$i = 1; //比較用カウンター
while($special_posts->have_posts()):
    $special_posts->the_post();
    //記事数の最初と最後を取得
    $reset = reset( $special_posts );
    $end = end( $special_posts );
?>

*******************************
//ループの最初だけ表示させる
<?php if( $i === $reset ) : ?>
 <ul>
<?php endif; ?>

//ループ内
<li>ループさせたい一覧用のタグ</li>

//ループの最後だけ表示させる
<?php if( $i === $end ) : ?>
 </ul>
<?php endif; ?>
*******************************
<?php
$i++; //比較用カウンターを+1する
endwhile;
?>

まとめ

こんな感じでループ内でも最初と最後を取得することができます!
タグ以外でも広告を入れたりいろいろと使えそうですね!