特定カテゴリー年代別一覧とページネーション
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(' — ', __('« 前の ページ'), __('次のページ »')); ?></p> <?php wp_reset_query(); ?> </div>