Changeset 28785 for trunk/src/wp-includes/general-template.php
- Timestamp:
- 06/20/2014 05:11:14 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/general-template.php
r28671 r28785 2439 2439 */ 2440 2440 function paginate_links( $args = '' ) { 2441 global $wp_query, $wp_rewrite; 2442 2443 $total = ( isset( $wp_query->max_num_pages ) ) ? $wp_query->max_num_pages : 1; 2444 $current = ( get_query_var( 'paged' ) ) ? intval( get_query_var( 'paged' ) ) : 1; 2445 $pagenum_link = html_entity_decode( get_pagenum_link() ); 2446 $query_args = array(); 2447 $url_parts = explode( '?', $pagenum_link ); 2448 2449 if ( isset( $url_parts[1] ) ) { 2450 wp_parse_str( $url_parts[1], $query_args ); 2451 } 2452 2453 $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link ); 2454 $pagenum_link = trailingslashit( $pagenum_link ) . '%_%'; 2455 2456 $format = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : ''; 2457 $format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%'; 2458 2441 2459 $defaults = array( 2442 'base' => '%_%', // http://example.com/all_posts.php%_% : %_% is replaced by format (below)2443 'format' => '?page=%#%', // ?page=%#% : %#% is replaced by the page number2444 'total' => 1,2445 'current' => 0,2460 'base' => $pagenum_link, // http://example.com/all_posts.php%_% : %_% is replaced by format (below) 2461 'format' => $format, // ?page=%#% : %#% is replaced by the page number 2462 'total' => $total, 2463 'current' => $current, 2446 2464 'show_all' => false, 2447 2465 'prev_next' => true, … … 2477 2495 $page_links = array(); 2478 2496 $dots = false; 2479 $base = str_replace( '%_%', $args['format'], $args['base'] );2480 2497 2481 2498 if ( $args['prev_next'] && $current && 1 < $current ) : 2482 $link = str_replace( '%#%', $current - 1, $base ); 2499 $link = str_replace( '%_%', 2 == $current ? '' : $args['format'], $args['base'] ); 2500 $link = str_replace( '%#%', $current - 1, $link ); 2483 2501 if ( $add_args ) 2484 2502 $link = add_query_arg( $add_args, $link ); … … 2500 2518 else : 2501 2519 if ( $args['show_all'] || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) : 2502 $link = str_replace( '%#%', $n, $base ); 2520 $link = str_replace( '%_%', 1 == $n ? '' : $args['format'], $args['base'] ); 2521 $link = str_replace( '%#%', $n, $link ); 2503 2522 if ( $add_args ) 2504 2523 $link = add_query_arg( $add_args, $link ); … … 2515 2534 endfor; 2516 2535 if ( $args['prev_next'] && $current && ( $current < $total || -1 == $total ) ) : 2517 $link = str_replace( '%#%', $current + 1, $base ); 2536 $link = str_replace( '%_%', $args['format'], $args['base'] ); 2537 $link = str_replace( '%#%', $current + 1, $link ); 2518 2538 if ( $add_args ) 2519 2539 $link = add_query_arg( $add_args, $link );
Note: See TracChangeset
for help on using the changeset viewer.