固定ページでページネーション

wordpressで投稿新着一覧をトップに表示させたい場合、
外観→カスタマイズ→ホームページ設定、で「ホームページの表示」を「最新の投稿」にすればよくて
1ページに表示する件数とかも管理画面で決められるんですが。
今回はカテゴリーで絞ったり、カスタムフィールドの値で表示順を変えたり、その下にもまた別のカテゴリーの記事一覧をいれたりしたかったので
ホームページは固定ページにして、各ループをショートコードでよみこませてたんですね。

そしたら、、、ページネーションがきかない、、、、設置はできたんですが、
次ページボタン押しても、2、とか押しても、URLは/page/2とか書いてあるのに、表示されているのは一向に1ページ目の内容。

検索すると多数のサイトに方法が書いてあるんですが、どれやってみても変わらず。。

そこで私が取った手段。

まず、固定ページのthe_contentsの中にループがあるのがいけないのでは、、ということで
page.phpをコピーしてpage-top.php(トップの固定ページのslugがtopでした、というかhome.phpでよかったですかね)を作ることに。

テンプレートの中身は、まずheaderを読み込んでからメインループが始まっています。
メインループの中にwp_queryがあるからいけないんじゃないかな、、ということで、メインループ削除!
そして、この一覧の下には固定ページのエディタの内容を入れたいので、the_content();の前に、
ページネーションさせたいループをぶちこみます。

わたしがひっかかりまくってたのは、
参考にしてたサイトがみんな、現在のページを取得するときに、

get_query_var( ‘paged’ ) ? intval( get_query_var( ‘paged’ ) ) : 1

とか

(int) get_query_var(‘paged’);

と書かれてたんですが、なぜかわたしの場合はそれではだめで、、
最終的にはwordpress codexにかかれていた、

get_query_var(‘page’, 1)

でおちついたというわけです。。これで思っていた表示にできました。
なんでだめだったんだろなーーーまだまだコーディングの長い道のりはつづく。。。

●参考サイト
関数リファレンス/get query var
【WordPress】固定ページでページャー付きの投稿一覧を表示

コメントを残す

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

CAPTCHA


top