PHP Pager

$range is how many numbers to display before and after the current page number.

<div class="pagination">
  <p>Go to another page:</p>
  <ol class="next-prev">
    <?php if ($current_page != 1): ?>
      <li class="prev"><a href="<?php print "$current_full_uri&page=$previous_page"; ?>">Previous</a></li>
    <?php endif; ?>
    <?php if ($current_page != $page_count): ?>
      <li class="next"><a href="<?php print "$current_full_uri&page=$next_page"; ?>">Next</a></li>
    <?php endif; ?>
  </ol>
  <ol class="pages">
    <?php
    for ($x = ($current_page - $range); $x < (($current_page + $range) + 1); $x++):
      // if it's a valid page number...
      if (($x > 0) && ($x <= $page_count)):
        // if we're on current page...
        if ($x == $current_page):
          // 'highlight' it but don't make a link
          print "<li><mark> $x </mark></li>";
        // if not current page...
        else:
          // make it a link
          print "<li><a href=\"$current_full_uri&page=$x\"> $x </a></li>";
        endif;
      endif;
    endfor;
    ?>
    <?php // This last part is optional
    if ($current_page < ($page_count - $range - 1)) {
      print "<li> ...<a href=\"$current_full_uri&page=$page_count\"> $page_count</a></li>";
    }
    if (($current_page == $page_count - $range - 1)) {
      print "<li><a href=\"$current_full_uri&page=$page_count\"> $page_count</a></li>";
    }
    ?>
  </ol>
</div>

Article Type

General