WordPressテックラボ

Google風ページネーション付きのブログ形式の一覧を出力する

Google風の1,2,3といったページネーション付きの、タイトル、詳細をブログ形式で一覧出力する場合は下記のようになります。

<?php 
// カテゴリーの詳細データを取得
$cat_info	= get_category( $cat );

/* 
	ページナビゲーションの作成
*/

global $pg_navi;

// URLの取得
$paginate_base = get_pagenum_link(1);
// クエリ文字列がある場合
if ( strpos($paginate_base, '?') ) {
	$paginate_format	= '';
	$paginate_base		= add_query_arg('paged', '%#%');
// クエリ文字列がない場合
} else {
	$paginate_format	= (substr($paginate_base, -1 ,1) == '/' ? '' : '/') 
		. user_trailingslashit('page/%#%/', 'paged');
	$paginate_base		.= '%_%';
}
$pg_navi	= paginate_links( array(
	'base'		=> $paginate_base,
	'format'	=> $paginate_format,
	'total'		=> $wp_query->max_num_pages,
	'mid_size'	=> 7,
	'current'	=> ($paged ? $paged : 1),
)); 
echo '<div class="page-navi">' . "\n" . $pg_navi . "</div>\n";

// 記事一覧の出力
while ( have_posts() ){
	the_post();
	get_template_part( 'content', get_post_format() );
}
?>

ページナビゲーションはグローバル変数にしているので、複数出力することもできます。

<?php
echo $pg_navi;
?>

関連記事