カスタム投稿の記事一覧でページネーションがおかしい場合の対処法

デフォルトのページ数は管理画面の設定>表示設定>1ページに表示する最大投稿数に入っている数字(デフォルトでは10)になっています。

目的のカスタム投稿の記事一覧で5記事ごとに表示したい場合
archive-{slug}.php


            $page_count =5;
            $offset = 0;
            $now_page = get_query_var('paged');

            //オフセット計算
            if ($now_page > 1) {
                $offset = ($page_count * $now_page) - $page_count;
            }

            $arg = array(
                'post_type' => 'カスタム投稿のスラッグ'
                'orderby' => 'post_date',
                'order' => 'DESC',
                'offset' => $offset,
     
            );

            $myposts = get_posts($arg);
…
…記事出力
…

//ページネーション
the_posts_pagination(array(
'prev_text'=>'«',
'next_text'=>'»',
	));


function.phpに以下のアクションを入れます


function change_posts_per_page($query) {
    /* 表示件数を5件にセット */
  if ( $query->is_post_type_archive('カスタム投稿のスラッグ') ) {
        $query->set( 'posts_per_page', '5' );
    }
}
add_action( 'pre_get_posts', 'change_posts_per_page' );

これでページネーションは期待通りに動きました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中