- 表示させたい記事の合計件数を指定
- 先頭固定した記事を表示
- 先頭固定した記事数を表示させたい記事の合計件数から差し引き→通常のループへ
- 通常ループから先頭固定した記事を省き、残りの数の記事を表示
<?php
$list_cnt = 6; //表示させたい記事の合計件数
$sticky = get_option('sticky_posts'); //先頭固定の記事
if ( !empty($sticky) ) $list_cnt -= count($sticky); //先頭固定の記事がある場合は、その件数を「$list_cnt」の値から引く
if ( count($sticky) > 0 ):
$the_query = new WP_Query(array(
'post_type'=> 'post' ,
'cat'=> 4,
'post__in' => $sticky,
));?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<dl>
<dt><?php the_title(); ?><span><?php echo get_the_date(); ?></span></dt>
<dd><?php the_content(); ?></dd>
</dl>
<?php endwhile; ?>
<?php endif; ?>
<?php if ( $list_cnt > 0 ): //先頭固定以外の記事の表示
$the_query = new WP_Query(array(
'post__not_in' => get_option( 'sticky_posts' ),
'post_type'=> 'post' ,
'cat'=> 4,
'posts_per_page' => $list_cnt,
'ignore_sticky_posts' => 1,
));?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<dl>
<dt><?php the_title(); ?><span><?php echo get_the_date(); ?></span></dt>
<dd><?php the_content(); ?></dd>
</dl>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>