Skip to content

Instantly share code, notes, and snippets.

@azeemhassni
Last active August 29, 2015 14:08
Show Gist options
  • Save azeemhassni/da6a027a6512a6142aa1 to your computer and use it in GitHub Desktop.
Save azeemhassni/da6a027a6512a6142aa1 to your computer and use it in GitHub Desktop.
WordPress Numaric Pagination
<?php
/**
* @param string $pages
* @param int $range
* @param WP_Query|null $custom_query
* @author Azi Baloch <www.azibaloch.com>
*/
function wp_print_numaric_pagination( $pages = '', $range = 4, $custom_query = null) {
global $paged;
if (empty( $paged )) $paged = 1;
if (!is_null($custom_query)) {
$wp_query = $custom_query;
} else {
global $wp_query;
}
if ($pages == '') {
$pages = $wp_query->max_num_pages;
if (!$pages) {
$pages = 1;
}
}
$showitems = ( $range * 2 ) + 1;
if (1 != $pages) {
echo '<div class="pagination"><span>Page ' . $paged . ' of ' . $pages . '</span>';
if ($paged > 2 && $paged > $range + 1 && $showitems < $pages) echo "<a href='" . get_pagenum_link(1) . "'>&laquo; First</a>";
if ($paged > 1 && $showitems < $pages) echo "<a href='" . get_pagenum_link($paged - 1) . "'>&lsaquo; Previous</a>";
for ($i = 1; $i <= $pages; $i++) {
if (1 != $pages && ( !( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems )) {
echo ( $paged == $i ) ? "<span class=\"current\">" . $i . "</span>" : "<a href='" . get_pagenum_link($i) . "' class=\"inactive\">" . $i . "</a>";
}
}
if ($paged < $pages && $showitems < $pages) echo "<a href=\"" . get_pagenum_link($paged + 1) . "\">Next &rsaquo;</a>";
if ($paged < $pages - 1 && $paged + $range - 1 < $pages && $showitems < $pages) echo "<a href='" . get_pagenum_link($pages) . "'>Last &raquo;</a>";
echo "</div>\n";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment