【WordPress】ページ送りで2ページ目以降が表示されない時

Pocket

ご無沙汰しております!

最近めっきりブログを書く気力がなくなっていましたが、
久しぶりに自分の箱庭を整えたくなったので書くことにしました。

WordPressオリジナルテーマ作成時のページ送りについて(特に一覧ページのページ送り)

これは調べていると一度ならず二度、三度とハマりやすいポイントで、
私も今回ハマって二度目 なんでーーーーと悶々としながら調べた先に、
やっと、でも結構あっけなく解決に至りました。

ページ送りとは・・・

ブログは何個も記事があるので、
個別ページの下には「前の記事へ」とか「次の記事へ」とかのリンク
一覧ページ(ブログトップやアーカイブページ)には「前のページ」「次のページ」とかのリンク
を設置することが多々あります。

個別ページ:single.phpの場合

これは割とスッと動いてくれます。

一覧ページ:home.php(front-page.php) archive.phpの場合

これは最後、この方の記事にたどり着いて解決しました。

WP-PageNaviを使ってみる(一覧でページ送りを表示するWordPressプラグイン)

記事一覧取得コードに下記を加えることで解決しました。

’paged’ => get_query_var(‘paged’)

最初のループコード

<?php $the_query = new WP_Query( array( //サブループの条件設定
        'post_type' => 'post', //投稿を表示
        'posts_per_page' => 10, //10件表示 ) ); ?> 
      <?php if ( $the_query->have_posts() ) : ?> 
      <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

ループする内容

<?php endwhile; endif; ?>
        <?php wp_reset_postdata(); ?> 

修正後のコード

<?php $the_query = new WP_Query( array( //サブループの条件設定
        'post_type' => 'post', //投稿を表示
        'posts_per_page' => 10, //10件表示
        'paged' => get_query_var('paged') //これを加えました★) ); ?> 
      <?php if ( $the_query->have_posts() ) : ?> 
      <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
ループする内容

<?php endwhile; endif; ?>
        <?php wp_reset_postdata(); ?> 

変数[paged]は「今、何ページ目?」という値を指定するものです。

この値が指定されていないことで、ページ送りの2ページ以降でも「1ページ目に該当する内容」が表示されていた可能性があります。

こちらのページでも、詳細に説明してくださっています。

諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義

もしもページ送りで迷っていたら、記事の取得条件を再度、見直してみてください。

解決しますように!!!

この記事が気に入ったら
いいね ! しよう

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です