こんにちは前回こんな記事を書いたんですが
▶︎「一定数以上の記事は非表示にしてアコーディオンで表示させる方法【WordPress】」
その後、実装した下部にページネーションを付けようとwp_pagenaviを使ってみたところ
なぜか表示されなくて、
デベロッパーツールをみてもページネーションの中身が表示されていなかったので結局コード自体を書き直しました汗
Queryの記述が結構重要だった
調べてみると原因としては、以下を記述してない点
✔︎WP_Queryで呼び出していなかった
✔︎<?php wp_pagenavi(array(‘query’ => $query));?> で格納先を指定する必要があった
✔︎$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;で、現在は何ページ目なのか指定する必要があった
ということがわかりました。
書き直したコードがこちら▼
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'posts_per_page' => 12,
'offset'=> 0,
'category_name' => 'code',
'paged' => $paged,);
$query = new WP_Query( $args );
if($query -> have_posts()):
foreach ( $query -> posts as $post ) : setup_postdata( $post );
?>
<li>
<a href="<?php the_permalink(); ?>">
<span><?php the_time('Y年m月d日'); ?></span>
<span><?php the_title(); ?></span>
</a>
</li>
<?php endforeach; endif; wp_reset_postdata();?>
</ul>
<?php if(function_exists('wp_pagenavi')):?>
<div><?php wp_pagenavi(array('query' => $query));?></div>
<?php endif;?>
こんな感じになりました。
追加で記述するに当たって
この記事がめちゃくちゃ分かりやすかったです。▶︎参考サイトはこちら
結果的にページネーションはきちんと表示されたんですが、
今度は2ページ目に移行すると404のエラーになるという不具合にぶつかりました
wp_pagenaviの2ページ目が404になってしまう原因を探ってみる
これは結構あるあるらしくてこちらも調べてみた結果
✔︎post_per_pageで指定した件数が投稿設定の表示件数より上回っているとうまく表示されない。
✔︎パーマリンクの設定が%category%/%postname%になっている
大体この2件に落ち着きました。
が。。。
私がやっているのはサイトの1部。
設定からページ全体に影響を及ぼすのはまずい。。。
なので結局どちらも触りませんでした。
で結論どうなったかというと
他のサイトを参考にみていたところ
どれもLPのようなページの中でページネーションを使っていることがなかったという点。
はい。そもそもできないんじゃないか説
なぜならボタンをクリックしたらアーカイブページのような一覧ページに飛んで行くのがほとんどだったんです。というかみたサイトは全部そんな感じ。
来週社員さんに相談してみて再度実装してみるのでまた追記します!!!
では!