web関連

wordpressのループで連番をカウントする方法

wordpressのループで連番をカウントする方法

カスタムフィールドのRepeater Field(繰り返しフィールド)で、連番を振りたいと思ったがどういう風に書けばいいのかわからなかったのでメモ

繰り返しフィールドで連番を振る方法

<?php if ( have_rows( '親カスタムフィールド' ) ) : ?>
<?php $count=1; //←ここに連番用の数字を設置 ?>
<?php while ( have_rows( '親カスタムフィールド' ) ) : the_row(); ?>

<?php echo $count; //←連番の吐き出し ?>
<?php the_sub_field( '繰り返す子カスタムフィールド' ); ?>

<?php $count++; //←ループが1回繰り返されるたびにここで1足す ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

「have_rows()」で繰り返しフィールドを持っているかどうか確認して
持っていたら連番用の「$count」に「1」を入れる。
「while()」で繰り返しフィールドに中身がある間は処理を実行
「the_row()」でループを1回進める

あまり気にしていなかったから、処理を文字で起こしてみた

連番の数字を「01」とかで吐き出す方法

<?php $count = sprintf("%02d",$count); ?>

$count++;の前とかに設置すれば反映されます。

「$count=1;」の設置場所、最初「while()…the_row()」の後だと思ってた…ループの中に置けばいけると思うやん

投稿のループでの連番はこちら

<?php if ( have_posts() ) : ?>
<?php $count=1; //←ここに連番用の数字を設置 ?>
<?php while ( have_posts() ) : the_post(); ?>

<?php echo $count; //←連番の吐き出し ?>

<?php $count++; //←ループが1回繰り返されるたびにここで1足す ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

今まで気にしてこなかったけど「繰り返しフィールド」と「投稿のループ」って似ているなと思ったら似せて作ってるみたいすね