* @copyright Copyright (c) 2012, Paul de Wouters * @link http://pauldewouters.com * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ /** * Echoes post navigation in page numbers format (similar to WP-PageNavi). * * The links, if needed, are ordered as: * previous page arrow, * first page, * up to two pages before current page, * current page, * up to two pages after the current page, * last page, * next page arrow. * * @since 0.2.3 * * @uses g_ent() Pass entities through filter * * @global WP_Query $wp_query Query object * @return null Returns early if on a single post or page, or only 1 page present */ function pdw_spine_numeric_posts_nav() { if( is_singular() ) return; global $wp_query; /** Stop execution if there's only 1 page */ if( $wp_query->max_num_pages <= 1 ) return; $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $max = intval( $wp_query->max_num_pages ); /** Add current page to the array */ if ( $paged >= 1 ) $links[] = $paged; /** Add the pages around the current page to the array */ if ( $paged >= 3 ) { $links[] = $paged - 1; $links[] = $paged - 2; } if ( ( $paged + 2 ) <= $max ) { $links[] = $paged + 2; $links[] = $paged + 1; } echo '
' . "\n"; }