Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function get_pagination($range = 4){
- // $paged - number of the current page
- global $paged, $wp_query;
- // How much pages do we have?
- if ( !$max_page ) {
- $max_page = $wp_query->max_num_pages;
- }
- // We need the pagination only if there are more than 1 page
- if($max_page > 1){
- if(!$paged){
- $paged = 1;
- }
- // On the first page, don't put the First page link
- if($paged != 1){
- echo "<a href=" . get_pagenum_link(1) . "> First </a>";
- }
- // To the previous page
- previous_posts_link(' « ');
- // We need the sliding effect only if there are more pages than is the sliding range
- if($max_page > $range){
- // When closer to the beginning
- if($paged < $range){
- for($i = 1; $i <= ($range + 1); $i++){
- echo "<a href='" . get_pagenum_link($i) ."'";
- if($i==$paged) echo "class='current'";
- echo ">$i</a>";
- }
- }
- // When closer to the end
- elseif($paged >= ($max_page - ceil(($range/2)))){
- for($i = $max_page - $range; $i <= $max_page; $i++){
- echo "<a href='" . get_pagenum_link($i) ."'";
- if($i==$paged) echo "class='current'";
- echo ">$i</a>";
- }
- }
- // Somewhere in the middle
- elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
- for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){
- echo "<a href='" . get_pagenum_link($i) ."'";
- if($i==$paged) echo "class='current'";
- echo ">$i</a>";
- }
- }
- }
- // Less pages than the range, no sliding effect needed
- else{
- for($i = 1; $i <= $max_page; $i++){
- echo "<a href='" . get_pagenum_link($i) ."'";
- if($i==$paged) echo "class='current'";
- echo ">$i</a>";
- }
- }
- // Next page
- next_posts_link(' » ');
- // On the last page, don't put the Last page link
- if($paged != $max_page){
- echo " <a href=" . get_pagenum_link($max_page) . "> Last </a>";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement