というわけで多分今後他の案件でも使うので覚え書き。
wordpressへの組み込みのお仕事を頂く中で、建築関係の案件が多々あります。
よって施工事例的なページがあるわけです。
リストページ(archive-○○.php)→詳細ページ
大抵はこうなるわけですが。
リストページが問題になることはあります。
たとえば
3つごとにdivで囲み、さらにdivの中の最後の1つにclassをつけたい。
divで囲まないと文字が多くなったときに崩れてしまうから。
*********************************
<div>
<p>1</p>
<p>2</p>
<p class="test">3</p>
</div>
<div>
<p>1</p>
<p>2</p>
<p class="test">3</p>
</div>
**********************************
上のような感じががやりたい。
そんなとき、以下のようなことをするとできる。
**********************************
<?php $i = 0; if (have_posts()) : ?> // $iに0を入れる
<?php $post_count = 1; // カウンターの初期化
echo '<div class="block clearfix">' . "\n"; // 囲みを出力
?>
<?php while (have_posts()) : the_post(); ?>
<?php if ( $post_count % 3 == 1 && $post_count != 1 ) { echo '</div>' . "\n" . '<div class="block clearfix">' . "\n"; } // 3で割った余りが1で、なおかつカウンターが1(最初)でなければ閉じdivと囲みの開始タグを出力
?>
<?php if ($i >0 && $i % 2 == 0) {
$class = 'test'; //もし記事が3つ目のだった場合場合 test を入れる
} else {
$class = '';
}
$i++; ?>
<p class="<?php echo $class;?>"><?php the_title(); ?><p>
<?php $post_count++; // カウンターを1増やす ?>
<?php endwhile; ?>
<?php echo '</div>' . "\n"; // 最後にdivを閉じる ?>
<?php else : ?>
<?php endif; ?>
こんな感じ。
これで大抵私にまわってくる案件が上手く表示できる。