CROR

[WordPress] offsetを使用したページネーション処理

今回は、下記レイアウトのような最新記事1件だけ大きく見せて、2件目以降からは小さな枠といったレイアウトを作成する方法をご紹介します。

レウアウト構成

offsetパラメータを使えば、簡単じゃないかと言われる方もいるかもしれませんが、これには大きな問題を抱えています。

問題というのは、1ページだけのものであればよいのですが、改ページした2ページ目以降を開いても投稿データが切り替わることなく、同じ記事が出てしまうという点です。
これは、offsetパラメータを指定することで、paged(ページ区切り)の処理を破壊してしまうためです。

詳しくはこちらを参照
http://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination

対処法

offsetとpagedを同時に使うとダメということは、どちらかを使わなければ問題ないということ。
解決方法として、pagedパラメータで指定するのではなく、offsetの開始値を変えることにより、抽出する記事を絞ります。

上記だけでは、改ページリンクに問題が出てきますので、
下記コードをfunctions.phpに記述することで、解決します。

例えば、「1ページに表示する最大投稿数」を9件にして、記事が10件あった場合、2ページ目へのページネーションリンクが発生してしまいます。
もちろんoffsetで、表示件数を-1しているため、2ページ目へ行っても記事が表示されることはありません。

参考サイト:http://wordpress.stackexchange.com/questions/105496/how-to-adjust-found-posts-so-that-it-accounts-for-offset-and-pagination

コメントを残す

Return Top