Mit paginate_links () erzeugen Sie “01, 02, 03, 04” Paginierungen

Ich habe diesen Code

$format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : ''; $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%'; /*Set up paginated links.*/ $links = paginate_links( array( 'base' => $pagenum_link, 'format' => $format, 'total' => $wp_query->max_num_pages, 'current' => $paged, 'mid_size' => 1, 'after_page_number' => '.', 'add_args' => array_map( 'urlencode', $query_args ), 'prev_text' => '', 'next_text' => '', 'type' => 'list' ) ); 

Es funktioniert in Ordnung, aber es erzeugt Paginierung wie “1, 2, 3, 4 … Letzte Nummer”

Kann dies mit der function paginate_links () erreicht werden, um Paginierungen wie diese zu erzeugen “01, 02, 03 … 19, 20 Letzte Nummer”.

Solutions Collecting From Web of "Mit paginate_links () erzeugen Sie “01, 02, 03, 04” Paginierungen"

Entsprechend Ihrer Frage müssen Sie zwei Hauptschritte machen:

Schritt 1: Statt 1, 2, 3, 4...Last Number benötigen Sie 1, 2, 3...19, 20, Last Number

Schritt 2: Wenn die Nummer weniger als 10 ist, müssen Sie das Präfix 0 in der Seitennummerierung hinzufügen, also: 01, 02, 03...19, 20, Last Number

Dies ist definitiv mit der function paginate_links() möglich.

Lösung für Schritt 1:

Um sicherzustellen, dass 3 Seitenzahlen von beiden 'end_size' => 3 , müssen Sie das Attribut 'end_size' => 3

Lösung für Schritt 2:

Um sicherzustellen, dass Zahlen mit weniger als 10 Präfix 0 , müssen Sie den Filter Hook: number_format_i18n

Endgültiger CODE:

Platzieren Sie zuerst die folgende function irgendwo in Ihrer functions.php Datei:

  /* Filter function to be used with number_format_i18n filter hook */ if( ! function_exists( 'wpse255124_zero_prefix' ) ) : function wpse255124_zero_prefix( $format ) { $number = intval( $format ); if( intval( $number / 10 ) > 0 ) { return $format; } return '0' . $format; } endif; 

Verwenden Sie dann den folgenden CODE anstelle von dem, den Sie in Ihrer Frage angegeben haben:

  $format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : ''; $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%'; add_filter( 'number_format_i18n', 'wpse255124_zero_prefix' ); /*Set up paginated links.*/ $links = paginate_links( array( 'base' => $pagenum_link, 'format' => $format, 'total' => $wp_query->max_num_pages, 'current' => $paged, 'mid_size' => 1, 'end_size' => 3, 'after_page_number' => '.', 'add_args' => array_map( 'urlencode', $query_args ), 'prev_text' => '', 'next_text' => '', 'type' => 'list' ) ); remove_filter( 'number_format_i18n', 'wpse255124_zero_prefix' ); 

Jetzt sollten Sie Ihre erwartete Seitenzahl erhalten.