Index: post-template.php
===================================================================
--- post-template.php	(revision 42418)
+++ post-template.php	(working copy)
@@ -862,7 +862,7 @@
  * Quicktag one or more times). This tag must be within The Loop.
  *
  * @since 1.2.0
- * @since 5.0.0 Added the `aria_current` argument.
+ * @since 5.0.0 Added the `aria_current` argument and `mixed` as possible value for `next_or_number` argument
  *
  * @global int $page
  * @global int $numpages
@@ -880,8 +880,8 @@
  *                                          Also appended to the current item, which is not linked. Default empty.
  *     @type string       $aria_current     The value for the aria-current attribute. Possible values are 'page',
  *                                          'step', 'location', 'date', 'time', 'true', 'false'. Default is 'page'.
- *     @type string       $next_or_number   Indicates whether page numbers should be used. Valid values are number
- *                                          and next. Default is 'number'.
+ *     @type string       $next_or_number   Controls the formatting of navigation links. Valid values are 'next', 'number'
+ *                                          and 'mixed'. Default is 'number'.
  *     @type string       $separator        Text between pagination links. Default is ' '.
  *     @type string       $nextpagelink     Link text for the next page link, if available. Default is 'Next Page'.
  *     @type string       $previouspagelink Link text for the previous page link, if available. Default is 'Previous Page'.
@@ -902,6 +902,7 @@
 		'link_after'       => '',
 		'aria_current'     => 'page',
 		'next_or_number'   => 'number',
+		'navwidth'         => '3',
 		'separator'        => ' ',
 		'nextpagelink'     => __( 'Next page' ),
 		'previouspagelink' => __( 'Previous page' ),
@@ -954,7 +955,32 @@
 
 				/** This filter is documented in wp-includes/post-template.php */
 				$output .= apply_filters( 'wp_link_pages_link', $link, $prev );
-			}
+				
+					// Output number of links equal to $navwidth before current page
+                    if ( 'mixed' == $r['next_or_number'] ) {
+                                    For ( $i = $page - $navwidth; $i < $page; $i++) {
+                                                    if ( $i > 0) {
+                                                    $link = _wp_link_page( $i ) . $r['link_before'] . str_replace( '%', $i, $r['pagelink'] ) . $r['link_after'] . '</a>';
+                                                    $link = apply_filters( 'wp_link_pages_link', $link, $i );
+                                                    
+                                                    // Use the custom links separator beginning with the second link.
+                                                    $output .= ( 1 === $i ) ? ' ' : $r['separator'];
+                                                    $output .= $link
+                                                    }
+                                    }
+                                    // Output current page within <span> tags for enhanced styling capability
+                                    if ( $prev ) {
+                                                    $output .= $r['separator'];
+                                    }
+                                    $output .= $r['link_before'] . ('<span class="post-page-numbers current" aria-current="' . esc_attr( $r['aria_current'] ) . '">') . str_replace( '%', $i, $r['pagelink'] ) . ('</span>') . $r['link_after'];
+                                    
+                                    // Output number of links equal to $navwidth after current page
+                                    For ($i = $page + 1; $i <= $numpages; $i++) {
+                                                    $link = _wp_link_page( $i ) . $r['link_before'] . str_replace( '%', $i, $r['pagelink'] ) . $r['link_after'] . '</a>';
+                                                    $link = apply_filters( 'wp_link_pages_link', $link, $i );
+                                                    $output .= $r['separator'] . $link;
+                                    }				
+					}
 			$next = $page + 1;
 			if ( $next <= $numpages ) {
 				if ( $prev ) {
