WordPress.org

Make WordPress Core

Ticket #30831: 30831.3.diff

File 30831.3.diff, 2.2 KB (added by dd32, 6 years ago)
  • src/wp-includes/general-template.php

     
    26072607                'show_all' => false,
    26082608                'prev_next' => true,
    26092609                'prev_text' => __('« Previous'),
    26102610                'next_text' => __('Next »'),
    26112611                'end_size' => 1,
    26122612                'mid_size' => 2,
    26132613                'type' => 'plain',
    26142614                'add_args' => array(), // array of query args to add
    26152615                'add_fragment' => '',
    26162616                'before_page_number' => '',
    26172617                'after_page_number' => ''
    26182618        );
    26192619
    26202620        $args = wp_parse_args( $args, $defaults );
    26212621
     2622        if ( ! is_array( $args['add_args'] ) ) {
     2623                $args['add_args'] = array();
     2624        }
     2625
    26222626        // Merge additional query vars found in the original URL into 'add_args' array.
    26232627        if ( isset( $url_parts[1] ) ) {
    26242628                // Find the format argument.
    26252629                $format_query = parse_url( str_replace( '%_%', $args['format'], $args['base'] ), PHP_URL_QUERY );
    26262630                wp_parse_str( $format_query, $format_arg );
    26272631
    26282632                // Remove the format argument from the array of query arguments, to avoid overwriting custom format.
    26292633                wp_parse_str( remove_query_arg( array_keys( $format_arg ), $url_parts[1] ), $query_args );
    26302634                $args['add_args'] = array_merge( $args['add_args'], urlencode_deep( $query_args ) );
    26312635        }
    26322636
    26332637        // Who knows what else people pass in $args
    26342638        $total = (int) $args['total'];
    26352639        if ( $total < 2 ) {
    26362640                return;
    26372641        }
    26382642        $current  = (int) $args['current'];
    26392643        $end_size = (int) $args['end_size']; // Out of bounds?  Make it the default.
    26402644        if ( $end_size < 1 ) {
    26412645                $end_size = 1;
    26422646        }
    26432647        $mid_size = (int) $args['mid_size'];
    26442648        if ( $mid_size < 0 ) {
    26452649                $mid_size = 2;
    26462650        }
    2647         $add_args = is_array( $args['add_args'] ) ? $args['add_args'] : false;
     2651        $add_args = $args['add_args'];
    26482652        $r = '';
    26492653        $page_links = array();
    26502654        $dots = false;
    26512655
    26522656        if ( $args['prev_next'] && $current && 1 < $current ) :
    26532657                $link = str_replace( '%_%', 2 == $current ? '' : $args['format'], $args['base'] );
    26542658                $link = str_replace( '%#%', $current - 1, $link );
    26552659                if ( $add_args )
    26562660                        $link = add_query_arg( $add_args, $link );
    26572661                $link .= $args['add_fragment'];
    26582662
    26592663                /**
    26602664                 * Filter the paginated links for the given archive pages.
    26612665                 *
    26622666                 * @since 3.0.0