Advertisement
alchymyth

pagenavi inspired

Aug 3rd, 2012
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.88 KB | None | 0 0
  1. // buid-in page navigation; inspired by 'wp-pagenavi'
  2. function page_navi() {
  3.     global $wpdb, $wp_query;
  4.     $posts_per_page = intval(get_query_var('posts_per_page'));
  5.     $paged = intval(get_query_var('paged'));
  6.     $numposts = $wp_query->found_posts;
  7.     $max_page = intval($wp_query->max_num_pages);
  8.  
  9.     if (empty($paged) || $paged == 0)
  10.         $paged = 1;
  11.  
  12.     $pages_to_show = 5;
  13.     $pages_to_show_minus_1 = $pages_to_show - 1;
  14.     $half_page_start = floor($pages_to_show_minus_1/2);
  15.     $half_page_end = ceil($pages_to_show_minus_1/2);
  16.     $start_page = $paged - $half_page_start;
  17.  
  18.     if ($start_page <= 0)
  19.         $start_page = 1;
  20.  
  21.     $end_page = $paged + $half_page_end;
  22.     if (($end_page - $start_page) != $pages_to_show_minus_1) {
  23.         $end_page = $start_page + $pages_to_show_minus_1;
  24.     }
  25.  
  26.     if ($end_page > $max_page) {
  27.         $start_page = $max_page - $pages_to_show_minus_1;
  28.         $end_page = $max_page;
  29.     }
  30.  
  31.     if ($start_page <= 0)
  32.         $start_page = 1;
  33.  
  34. if($max_page > 1) :
  35. echo '<div class="wp-pagenavi">';
  36. //one step back
  37. if($paged>1) {
  38. echo '<a class="first" href="'.get_pagenum_link($paged-1).'" title="link to '.get_pagenum_link($paged-1).'"><small>&lt;</small> back</a> '; }
  39.  
  40. //jump to first page
  41. if($start_page!=1) :
  42. if($paged==1) { //echo '<span class="first">1 &laquo;</span>';
  43. } else {
  44. echo '<a class="first" href="'.get_pagenum_link(1).'" title="link to '.get_pagenum_link(1).'">1 &laquo;</a> '; }
  45. endif;
  46.  
  47. //centimal steps 100 steps back
  48. if($paged>110)  :
  49. echo '<a '; echo 'href="'.get_pagenum_link($paged-100).'" title="link to '.get_pagenum_link($paged-100).'">-100</a> ';
  50. endif;
  51.  
  52. //decimal steps 10 steps back
  53. if($paged>11)  :
  54. echo '<a '; echo 'href="'.get_pagenum_link($paged-10).'" title="link to '.get_pagenum_link($paged-10).'">-10</a> ';
  55. endif;
  56.  
  57. //from-to
  58. for($i=$start_page;$i<=$end_page;$i++) :
  59. if($i==$paged) { echo '<span class="current">'.$i.'</span>';
  60. } else {
  61. echo '<a '; echo 'href="'.get_pagenum_link($i).'" title="link to '.get_pagenum_link($i).'">'.$i.'</a>'; }
  62. endfor;
  63.  
  64. //decimal steps 10 steps forward
  65. if($paged<=$max_page-11) :
  66. echo ' <a '; echo 'href="'.get_pagenum_link($paged+10).'" title="link to '.get_pagenum_link($paged+10).'">+10</a>';
  67. endif;
  68.  
  69. //centimal steps 100 steps forward
  70. if($paged<=$max_page-110) :
  71. echo ' <a '; echo 'href="'.get_pagenum_link($paged+100).'" title="link to '.get_pagenum_link($paged+100).'">+100</a>';
  72. endif;
  73.  
  74. //jump to last page
  75. if($max_page>$end_page) :
  76. if($paged==$max_page) { //echo '<span class="last">&raquo; '.$max_page.'</span>';
  77. } else {
  78. echo ' <a class="last" href="'.get_pagenum_link($max_page).'" title="link to '.get_pagenum_link($max_page).'">&raquo; '.$max_page.'</a>'; }
  79. endif;
  80.  
  81. //one step forward
  82. if($paged<$max_page) {
  83. echo ' <a class="first" href="'.get_pagenum_link($paged+1).'" title="link to '.get_pagenum_link($paged+1).'">next <small>&gt;</small></a> '; }
  84.  
  85. echo '</div>';
  86. endif;
  87. }
  88. // end of page_navi() function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement