SHARE
TWEET

pagination function

danixland Jun 11th, 2011 333 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function sog_use_permalink() {
  2.         if ( get_option('permalink_structure') != '' ) {
  3.                 return true;
  4.         } else {
  5.                 return false;
  6.         }
  7. }
  8.  
  9. function sog_pagination( $query, $baseURL = '', $range = 2 ) {
  10.         if ( ! $baseURL ) $baseURL = get_bloginfo( 'url' );
  11.         $page = $query->query_vars["paged"];
  12.         $total_pages = $query->max_num_pages;
  13.         if ( !$page ) $page = 1;
  14.         $qs = $_SERVER["QUERY_STRING"] ? "?".$_SERVER["QUERY_STRING"] : "";
  15.         // Only necessary if there's more posts than posts-per-page
  16.         if ( $query->found_posts > $query->query_vars["posts_per_page"] ) {
  17.                 echo '<div class="paging">';
  18.                 // First link
  19.                 if( $page-$range > $range ) {
  20.                         if( sog_use_permalink() ) {
  21.                                 echo '<a class="next" href="'.$baseURL.'/page/1/'.'">First [1]</a>';
  22.                         } else {
  23.                                 echo '<a class="next" href="'.$baseURL.'/'.add_query_arg('paged', '1', $qs).'">First [1]</a>';
  24.                         }
  25.                 }
  26.                 // Previous link?
  27.                 if ( $page > 1 ) {
  28.                         if( sog_use_permalink() ) {
  29.                                 echo '<a class="previous" href="'.$baseURL.'/page/'.($page-1).'/'.'">&laquo; previous</a>';
  30.                         } else {
  31.                                 echo '<a class="previous" href="'.$baseURL.'/'.add_query_arg('paged', ($page-1), $qs).'">&laquo; previous</a>';
  32.                         }
  33.                 }
  34.                 // Loop through pages
  35.                 for ( $i=1; $i <= $total_pages; $i++ ) {
  36.                         // Current page or linked page?
  37.                         if ( $i == $page ) {
  38.                                 echo '<span class="active">' . $i . '</span>';
  39.                         } else {
  40.                                 if( $i == $page+$range || $i == $page-$range ) {
  41.                                         if( sog_use_permalink() ) {
  42.                                                 echo '<a href="'.$baseURL.'page/'.$i.'/">'.$i.'</a>';
  43.                                         } else {
  44.                                                 echo '<a href="'.$baseURL.add_query_arg('paged', $i, $qs).'">'.$i.'</a>';
  45.                                         }
  46.                                 }
  47.                         }
  48.                 }
  49.                 // Next link?
  50.                 if ( $page < $total_pages ) {
  51.                         if( sog_use_permalink() ) {
  52.                                 echo '<a class="next" href="'.$baseURL.'/page/'.($page+1).'/'.'">next &raquo;</a>';
  53.                         } else {
  54.                                 echo '<a class="next" href="'.$baseURL.'/'.add_query_arg('paged', ($page+1), $qs).'">next &raquo;</a>';
  55.                         }
  56.                 }
  57.                 // Last link
  58.                 if( $page+$range < $total_pages ) {
  59.                         if( sog_use_permalink() ) {
  60.                                 echo '<a class="next" href="'.$baseURL.'/page/' . $total_pages . '/'.'">Last [' . $total_pages . ']</a>';
  61.                         } else {
  62.                                 echo '<a class="next" href="'.$baseURL.'/'.add_query_arg('paged', ($total_pages), $qs).'">Last [' . $total_pages . ']</a>';
  63.                         }
  64.                 }
  65.                 echo '</div>';
  66.         }
  67.         wp_reset_postdata();
  68. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top