No products in the cart.
Forum Replies Created
Viewing 1 post (of 1 total)
- AuthorPosts
-
March 12, 2018 at 4:16 am in reply to: How can I paginate WP_Query results when there's an offset? #9418
sally-cj
Participant[EDIT] Here it is, fully tested and working:
$current_page = get_query_var('paged'); $current_page = max( 1, $current_page ); $per_page = 12; $offset_start = 1; $offset = ( $current_page - 1 ) * $per_page + $offset_start; $post_list = new WP_Query(array( 'cat' => -15, 'posts_per_page' => $per_page, 'paged' => $current_page, 'offset' => $offset, // Starts with the second most recent post. 'orderby' => 'date', // Makes sure the posts are sorted by date. 'order' => 'DESC', // And that the most recent ones come first. )); // Manually count the number of pages, because we used a custom OFFSET (i.e. // other than 0), so we can't simply use $post_list->max_num_pages or even // $post_list->found_posts without extra work/calculation. $total_rows = max( 0, $post_list->found_posts - $offset_start ); $total_pages = ceil( $total_rows / $per_page ); if ( $post_list->have_posts() ): while ( $post_list->have_posts() ): $post_list->the_post(); // loop output here endwhile; echo paginate_links( array( 'total' => $total_pages, 'current' => $current_page, ) ); endif; wp_reset_postdata();
PS: The code was re-indented using tabs.
- AuthorPosts
Viewing 1 post (of 1 total)