【WordPress】固定ページのページネーション

WordPressのページネーション

はじめに書いたコードが以下である。このコードはトップページ(front-page.php)または、カテゴリー(category.php)上では正常に動作するが、固定ページではページング処理ができなかった。

 

動作させるには上記コードのほかにページャーを生成する関数をfunctions.phpに定義しなければいけない。
ページャー用コードは下記サイトのものを使わせてもらった。

WordPressでページャー(ページネーション)をプラグインなしで実装 | WEMO
WordPressでページャーを表示する時はこれまで「WP-PageNavi」というプラグインに頼っていたのですが、そろそろコード直書きで実装してみることにしてみました。 ググればほぼ同じ内容のコードがたくさん出てきたのですが、そのコードだとエラーが出たりしてちょっと気に食わなかったので、自分なりにカスタマイズしてみま...

 

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

さて、冒頭のコードでは固定ページでページネーションできない理由はというと、「固定ページでページネーションする場合、ループ処理はget_posts()ではなく、WP_Query()を使って、max_num_pagesを取得しなければいけない」からだ。

なので、以下のように修正すれば固定ページでもページネーションできる。

 

ちなみに、WP_Queryがクラスなのでwhile文を使ったループに書き換えてあるが、下記のように$query->postsの中身を配列として扱えばforeach文でも同じ処理がかける。

 

コメント

タイトルとURLをコピーしました