Are you looking for a way to add pagination using Bootstrap? This snippet creates a numbered page navigation menu using Bootstrap’s native CSS classes.
Instructions:
- All you have to do is add this code to your theme’s functions.php file or in a site-specific plugin.
- Then, call the function
page_navi()
in a template file to display the pagination with that template.
// Numeric Page Navi function page_navi($before = '', $after = '') { global $wpdb, $wp_query; $request = $wp_query->request; $posts_per_page = intval(get_query_var('posts_per_page')); $paged = intval(get_query_var('paged')); $numposts = $wp_query->found_posts; $max_page = $wp_query->max_num_pages; if ( $numposts <= $posts_per_page ) { return; } if(empty($paged) || $paged == 0) { $paged = 1; } $pages_to_show = 7; $pages_to_show_minus_1 = $pages_to_show-1; $half_page_start = floor($pages_to_show_minus_1/2); $half_page_end = ceil($pages_to_show_minus_1/2); $start_page = $paged - $half_page_start; if($start_page <= 0) { $start_page = 1; } $end_page = $paged + $half_page_end; if(($end_page - $start_page) != $pages_to_show_minus_1) { $end_page = $start_page + $pages_to_show_minus_1; } if($end_page > $max_page) { $start_page = $max_page - $pages_to_show_minus_1; $end_page = $max_page; } if($start_page <= 0) { $start_page = 1; } echo $before.'<div class="pagination"><ul class="clearfix">'.""; if ($paged > 1) { $first_page_text = "«"; echo '<li class="prev"><a href="'.get_pagenum_link().'" title="First">'.$first_page_text.'</a></li>'; } $prevposts = get_previous_posts_link('← Previous'); if($prevposts) { echo '<li>' . $prevposts . '</li>'; } else { echo '<li class="disabled"><a href="#">← Previous</a></li>'; } for($i = $start_page; $i <= $end_page; $i++) { if($i == $paged) { echo '<li class="active"><a href="#">'.$i.'</a></li>'; } else { echo '<li><a href="'.get_pagenum_link($i).'">'.$i.'</a></li>'; } } echo '<li class="">'; next_posts_link('Next →'); echo '</li>'; if ($end_page < $max_page) { $last_page_text = "»"; echo '<li class="next"><a href="'.get_pagenum_link($max_page).'" title="Last">'.$last_page_text.'</a></li>'; } echo '</ul></div>'.$after.""; }
Note: If this is your first time adding code snippets in WordPress, then please refer to our guide on how to properly copy / paste code snippets in WordPress, so you don’t accidentally break your site.
If you liked this code snippet, please consider checking out our other articles on the site like: 9 Best SEO Tools to Grow Your Website Traffic, FAST!
doesn’t work in WordPress : Version 5.5.1