• RSS

[WP]WP_Query で ページ送りが上手くいかない問題を解決する

  • このエントリーをはてなブックマークに追加
  • follow us in feedly


この記事は @mekemoke 様の記事を参考にさせていただきました。

WordPressで WP_Query を使うとどうしても「ページ送りが上手くいかない…」とハマっていた所、有り難い記事を発見したのでシェアさせていただきました。

ページ送りには「WP-PageNavi」プラグインを使い、WP_Query で新着記事の一覧を10件表示させるという処理をしていたのですが、どうやら WP-PageNavi の使い方 に問題があったみたいです。

WP_Query でページ送りが上手くいかない場合

今回わたしがハマッた問題の解決法がズバリ紹介されていました。

WP-PageNavi は 1,2,3… と番号でページングしてくれるプラグインです。これにはクエリを渡せるので、…

[WP] posts_nav_link が WP_Query のループで動作しない理由と解決策とスニペット


なるほど…

という訳で、WP-PageNavi にクエリを渡せば問題は解決しそうかな。

WP_Query で記事を一覧出力

WP_Query で記事を10件出力して、ページ下部に WP-PageNavi でページ送りを付けてみる例です。
<?php 
	$paged = get_query_var('paged') ? get_query_var('paged') : 1;
	$my_query = new WP_Query( array(
		'paged' => $paged ,
		'posts_per_page' => 10
	));
	if ($my_query->have_posts()) :
	while ( $my_query->have_posts() ) : $my_query->the_post();
?>

<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php 
	endwhile; endif;
	//WP-PageNavi でページ送り
	wp_pagenavi(array('query' => $my_query));
	//ループをリセット
	wp_reset_postdata();
?>


query_posts で記事を一覧出力

WP-PageNavi を使わずに、posts_nav_link でページ送りをする場合などは、
query_posts を用いる模様。
<?php
	query_posts("&posts_per_page=10&paged=$paged");
	if (have_posts()) :
	while ( have_posts() ) : the_post();
?>

<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php
	endwhile; endif;
	//posts_nav_link でページ送り
	posts_nav_link(' | ', 'Prev', 'Next');
	//ループをリセット
	wp_reset_query();
?>

WP_Query() に関して分からなかった所も、今回の問題でだいぶ掴めてきました。

少しややこしいですが、WP_Query() でハマッた方は是非参考にしてみてください↓



  • このエントリーをはてなブックマークに追加
  • follow us in feedly

コメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください