Created
October 18, 2012 06:32
-
-
Save davidpaulsson/3910181 to your computer and use it in GitHub Desktop.
Foundation 4 pagination for WordPress
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function foundation_pagination( $p = 2 ) { | |
if ( is_singular() ) return; | |
global $wp_query, $paged; | |
$max_page = $wp_query->max_num_pages; | |
if ( $max_page == 1 ) return; | |
if ( empty( $paged ) ) $paged = 1; | |
if ( $paged > $p + 1 ) p_link( 1, 'First' ); | |
if ( $paged > $p + 2 ) echo '<li class="unavailable"><a href="#">…</a></li>'; | |
for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { // Middle pages | |
if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<li class='current'><a href='#'>{$i}</a></li> " : p_link( $i ); | |
} | |
if ( $paged < $max_page - $p - 1 ) echo '<li class="unavailable"><a href="#">…</a></li>'; | |
if ( $paged < $max_page - $p ) p_link( $max_page, 'Last' ); | |
} | |
function p_link( $i, $title = '' ) { | |
if ( $title == '' ) $title = "Page {$i}"; | |
echo "<li><a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$i}</a></li> "; | |
} |
An alternative with UL tag.
if ( ! function_exists( 'foundation_pagination' ) ) :
function foundation_pagination( $p = 2 ) {
if ( is_singular() ) return;
global $wp_query, $paged;
$pagination = '';
$max_page = $wp_query->max_num_pages;
if ( $max_page == 1 ) return;
if ( empty( $paged ) ) $paged = 1;
if ( $paged > $p + 1 ) $pagination.= p_link( 1, 'First' );
if ( $paged > $p + 2 ) $pagination .= '<li class="unavailable"><a href="#">…</a></li>';
for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { // Middle pages
if ( $i > 0 && $i <= $max_page )
$pagination .= ($i == $paged ? "<li class='current'><a href='#'>{$i}</a></li> " : p_link( $i ));
}
if ( $paged < $max_page - $p - 1 ) $pagination.= '<li class="unavailable"><a href="#">…</a></li>';
if ( $paged < $max_page - $p ) $pagination.= p_link( $max_page, 'Last' );
$pagination = '<ul class="pagination">'. $pagination .'</ul>';
echo $pagination;
}
function p_link( $i, $title = '' ) {
if ( $title == '' ) $title = "Page {$i}";
return "<li><a href='". esc_html( get_pagenum_link( $i ) ) ."' title='{$title}'>{$i}</a></li> ";
}
Thanks! I took your ideas and added some features:
https://gist.github.com/croemmich/5830094
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You saved my day! Thanks a billion!