このエントリーをはてなブックマークに追加

一覧を表示する際、サムネイル付きでフロートさせる場合など、1つずつ左寄せ右寄せ、とか、4つずつ clearfix で括るとかに必要なカウントの付け方のまとめ。

while 文の場合、while の前で初期化 $post_count = 1; endwhile の前で1つプラス $post_count++; foreach 文の場合も理屈は同じ。
分岐は $post_count == 2 、$post_count >= 2 、$post_count % 4 == 0 など

4つずつ clearfix

<?php $post_count = 1; 
echo '<div class="clearfix">' . "n"; 
?>
<?php while (have_posts()) : the_post(); ?>
<?php the_content(''); ?>
<?php if ( $post_count % 4 == 0 && $post_count != 1 ) { echo '</div>' . "n" . '<div class="clearfix">' . "n"; } ?>
<?php $post_count++; ?>
<?php endwhile; ?>
<?php echo '</div>' . "n"; ?>

投稿の間にボーダーを出したいが、一番下はボーダーなしにしたいので、投稿の2つ目から border-top のクラスを付ける
if ( $post_count !=1 ) { echo ‘ class=”xxxx”‘; }

左寄せ要素の4つ目だけマージンなしのクラス
if ( $post_count % 4 == 0 ) { echo ‘ class=”xxxx”‘; }

2つ目まで表示して、3つめ以降は開閉式。投稿の3つ目で開閉式にする部分を括る要素とトリガーになる見出しを表示(jQuery.collapseを利用)、ループの最後で投稿が3つより多くある時に閉じタグを表示。

<?php if (have_posts()) : $post_count = 1; while (have_posts()) : the_post(); ?>
	  <?php if ( $post_count==3 ) { ?><div class="hide"><h2 class="trigger"></h2><div class="open"><?php } ?>
	<div class="post">
		<h2 id="<?php echo $post->ID; ?>"><?php the_title(); ?></h2>
		<span class="date"><?php the_time('Y.m.d'); ?></span>
		<?php the_content(); ?>
	</div>
		<?php $post_count++; endwhile; if ( $post_count>3 ) { echo ' </div></div>'; } ?>
<?php endif; ?>

2013.06.29 投稿 2015.04.06 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles