+ if ( ! is_array( $args['add_args'] ) ) {
+ $args['add_args'] = array();
+ }
+
+ // Merge additional query vars found in the original URL into 'add_args' array.
+ if ( isset( $url_parts[1] ) ) {
+ // Find the format argument.
+ $format_query = parse_url( str_replace( '%_%', $args['format'], $args['base'] ), PHP_URL_QUERY );
+ wp_parse_str( $format_query, $format_arg );
+
+ // Remove the format argument from the array of query arguments, to avoid overwriting custom format.
+ wp_parse_str( remove_query_arg( array_keys( $format_arg ), $url_parts[1] ), $query_args );
+ $args['add_args'] = array_merge( $args['add_args'], urlencode_deep( $query_args ) );
+ }
+