WEBEER – Web制作の覚えがき –

【WordPress】ページネーションとoffsetを同時に使う

WordPress
WordPress 更新日:2020.10.26 公開日:2020.10.26

WordPressでページネーションとoffsetを同時に使うとうまく動かないんですよね。そこで新着記事一覧などで使える書き方をご紹介します。

やりたいこと

最初の数件を除外して一覧にする。トップページの新着記事の続きとかに使えます。

書き方

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
  'posts_per_page' => get_option('posts_per_page'),
  'paged' => $paged,
  'offset' => ($paged - 1) * get_option('posts_per_page') + 6,
  'orderby' => 'date',
  'order' => 'DESC',
);
$myposts = get_posts( $args );

if( $myposts ) {
  echo '<ul class="entry-list">';
  foreach ( $myposts as $post ){
    echo '<li>...</li>';
  }
}
  echo '</ul>';
  wp_reset_postdata();
} else {
  echo '<p>記事がありません</p>';
}

コピペで使えるように丸ごと書いてみました!

説明

'offset' => ($paged - 1) * get_option('posts_per_page') + 6,

この部分がoffsetです。

get_option('posts_per_page')これは1ページに表示する件数。ワードプレスの設定を取得しています。

6と言うのは除外する件数。

1ページ目だけ表示件数が違う場合

サイト型のページだったりで1ページ目だけ表示件数が違う場合のoffsetの書き方はこう

'offset' => ($paged - 1) * get_option('posts_per_page') - 4,