WordPressのTOPページと2ページで表示する投稿数を変更する。
WordPressの設定画面から何件ずつ表示するかという設定があるが、TOPページは20記事、2ページ目は25記事のようにページ毎で表示する記事数を変更したかったため、function.phpに以下を追加した。
define('PAGE_1ST', 25); // 1ページ目の件数
define('PAGE_2ND', 20); // 2ページ目以降の件数
function change_posts_paging($query) {
// 管理画面は除外
if ( is_admin() ) return;
// ホームのみ適用(カテゴリ・タグページだけなら、「is_archive()」)
if ( $query->is_home() ) {
$query->set( 'posts_per_page', PAGE_1ST);
}
$paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
if ($paged >= 2 && is_home()){ // 2ページ目以降の場合
$query->set('offset', PAGE_1ST + PAGE_2ND*($paged-2) );
$query->set('posts_per_page', PAGE_2ND);
}
}
add_action( 'pre_get_posts', 'change_posts_paging' );
Comment