特定カテゴリー年代別一覧とページネーション

2015年10月7日

2010年
高橋ひろし展 3月6日〜16日
高橋ひろし展   5月7日〜13日
2011年
高橋ひろし展   11月20日〜26日
のように年別に一覧表示する場合のコード。
今回はページネーションがうまくいかず苦しんだのでそれも込みで。
一行目の$paged = get_query_var(‘paged’)と2行目の
‘posts_per_page=10&cat=4&paged=’.$pagedが次ページを正しく
表示してくれる肝心な部分。
きちんとページに番号をあたえてくれるもの。
そうでないと、ページングしても1ページ目しか取ってこない。

<?php $paged = get_query_var('paged'); ?>
<?php query_posts( 'posts_per_page=10&cat=4&paged='.$paged, array('category_name'=>'past','posts_per_page'=>-1,'order'=>'DESC','orderby'=>'date') );
if ( have_posts() ) :
    $postmonth = false; // 比較用の変数を初期化
    while ( have_posts() ) :
        the_post();
        if( $postmonth != get_post_time('Y') ) : // 投稿年を比較
            if ( $postmonth !== false ) : // 最初のループは除外。2回目以降で投稿年月が異なれば閉じタグを出力
endif;
?>
<div class="past-ex-head">
<?php echo get_post_time('Y年'); ?>
</div>
<?php endif; ?>
<div class="past-ex-conte">

<table class="past-ex-conte">
<tr>
<th><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?>
</a></th>

<td><?php echo post_custom('date'); ?>
</td>
</tr>
</table>
</div>
<?php
	$postmonth = get_post_time('Y');
	endwhile;
	endif;
?>
</div>

<div id="page-info">
<div class="tablenav">
<p><?php posts_nav_link(' &#8212; ', __('&laquo; 前の
ページ'), __('次のページ &raquo;')); ?></p>
<?php wp_reset_query(); ?>
</div>
PAGE TOP