「WP-PageNavi」のメイン、サブループそれぞれの表示方法とトップページで使う方法

2021/2/20

2021/10/5

955 views

「WP-PageNavi」表示方法

ページャー(ページ送り)リストを表示してくれる便利なWordPressプラグイン「WP-PageNavi」ですが、ループの違いなどによって結構ハマりやすいので、そのあたりの解説です。

「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のメインループとサブループのそれぞれの表示方法とトップページで使う方法の解説でした。
大変便利なプラグインですが、使い方は少しややこいしい部分もあるので気をつけてください。

この記事へのコメント

  • まだ書き込みはありません

コメントを残す



関連記事

ページの先頭に戻る