「WP-PageNavi」のメイン、サブループそれぞれの表示方法とトップページで使う方法
2021/2/20
2021/10/5
4899 views
「WP-PageNavi」表示方法
ページャー(ページ送り)リストを表示してくれる便利なWordPressプラグイン「WP-PageNavi」ですが、ループの違いなどによって結構ハマりやすいので、そのあたりの解説です。
プラグインで「「WP-PageNavi」」を検索してインストールして有効化します。
「設定」>「Page Navi」で各種設定します。
今回はここの解説は省略します。
メインループで使う場合の記述例
カテゴリーページなどのメインループで使う場合はシンプルです。
下記は記述例です。
表示件数はダッシュボードの「設定」の「表示設定」での表示数が表示されます。
<?php if (have_posts()): ?>
<?php while (have_posts()) : the_post(); ?>
<article>
<p><?php echo get_the_title(); ?></p>
</article>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_pagenavi(); ?>
サブループに使う場合の記述例
以下はサブループを使う場合の記述例です。WP_Queryを使っています。
<?php
$paged = get_query_var('page')? get_query_var('page') : 1;
$args = array(
'post_type' => 'post',
'posts_per_page' => 20,
'paged' => $paged,
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<article>
<p><?php echo get_the_title(); ?></p>
</article>
<?php endwhile; endif; ?>
<?php
if(function_exists('wp_pagenavi')):
wp_pagenavi(array('query'=>$the_query));
endif;
?>
<?php wp_reset_postdata(); ?>
トップページではページ送りがおかしい!?
これ、かなりハマりました・・・。
トップページ(front-page.phpなど)で、サブループにページナビを実装したとき、カレントページ判別が1ページ目のままで変わらないなぞの現象が起こりました。
解決方法
トップページ(フロントぺージ)で使う場合はちょっと細工が必要なようです。
トップページの場合は”get_query_var”に、「paged」ではなく「page」を使います。
$paged = get_query_var('page')? get_query_var('page') : 1;
上記にすることで解決しました。
まとめ
以上、WP-PageNaviのメインループとサブループのそれぞれの表示方法とトップページで使う方法の解説でした。
大変便利なプラグインですが、使い方は少しややこいしい部分もあるので気をつけてください。
この記事へのコメント
- まだ書き込みはありません