user4831663
user4831663

Reputation:

Wordpress - Different 'posts-per-page' for paginated pages

Does anyone know how I can set different posts_per_pages for paginated pages.

For example:

Homepage = Posts per page 20 Homepage page 2 - 5 = Posts per page 10

The query I am using $wp_query->query(array( 'paged' => $paged, 'post_type' => 'cpt_operator', 'category__in' => array(12,22411), 'orderby'=>'menu_order', 'order' => 'ASC', 'post__not_in' => array($test) ));

Upvotes: 0

Views: 1827

Answers (1)

Ianis
Ianis

Reputation: 1175

If you want to display post 20~30 on page 2 you will need to calculate the offset

function custom_posts_per_page( $query ) {
    if( !is_admin() && $query->is_main_query() && (int) get_query_var('paged', 1) >= 2 ) {
        $query->set( 'posts_per_page', '10' );
        $query->set( 'offset',  ((int) get_query_var('paged') - 2) * 10 + 20);
    }
}
add_action( 'pre_get_posts', 'custom_posts_per_page' );

10 : number of posts per page on page 2+

20 : number of posts on homepage

Upvotes: 1

Related Questions