• HOME
  • WordPress
  • ページャーへの理解をちゃんとしよう。

ページャーへの理解をちゃんとしよう。

ワードプレスのページの概念というかqueryの話になるのかな?

<?php
$custom_paged = $_GET['paged'];
$args['post_type'] = 'hoge';
$args['post_status'] = 'publish';
$args['paged'] = $custom_paged;
$custom_posts = new WP_Query( $args );
?>
<?php pager($custom_posts,$custom_paged);?>
function pager($wp_query,$paged, $pages = '', $range = 2){
	$showitems = ($range * 2)+1; 
	if($paged) global $paged;
	 if(empty($paged)) $paged = 1;
	 if($pages == '')
	{
		//global $wp_query;
		$pages = $wp_query->max_num_pages;
		if(!$pages)
		{
			$pages = 1;
		}
	}

	if(1 != $pages)
	{
	;?>
		<div class="pagenation">
			<ul>
				<li><?php if($paged > 1 ) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;&lsaquo;</a>";?></li>
				<?php for ($i=1; $i <= $pages; $i++){
						if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) {
							echo ($paged == $i)? "<li><span class=\"current\">".$i."</span></li>":"<li class=\"link\"><a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a></li>";
						}
					};?>
				<li><?php if ($paged < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">&rsaquo;&rsaquo;</a>";?></li>
			</ul>
		</div>

	<?php
	}
}

昔から使っていたどこかからコピペしたものをカスタム投稿などにも対応できるように汎用的なものに変更。
WP_Queryをちゃんと使うようになってきてから記事の出し方なんかの思考整理がちゃんとできるようになってきた気がする。