Skip to content

Commit 97d4a76

Browse files
Merge branch 'trunk' into skip-page-builder-dip
2 parents 119efb6 + b8b74d5 commit 97d4a76

4 files changed

Lines changed: 203 additions & 47 deletions

File tree

src/wp-includes/class-wp-scripts.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -417,19 +417,32 @@ public function do_item( $handle, $group = false ) {
417417
$src = $this->base_url . $src;
418418
}
419419

420-
$query_args = array();
420+
$ver_to_add = '';
421421
if ( empty( $obj->ver ) && null !== $obj->ver && is_string( $this->default_version ) ) {
422-
$query_args['ver'] = $this->default_version;
422+
$ver_to_add = $this->default_version;
423423
} elseif ( is_scalar( $obj->ver ) ) {
424-
$query_args['ver'] = (string) $obj->ver;
424+
$ver_to_add = (string) $obj->ver;
425425
}
426-
if ( isset( $this->args[ $handle ] ) ) {
427-
parse_str( $this->args[ $handle ], $parsed_args );
428-
if ( $parsed_args ) {
429-
$query_args = array_merge( $query_args, $parsed_args );
426+
427+
$added_args = (string) ( $this->args[ $handle ] ?? '' );
428+
429+
if ( '' !== $ver_to_add || '' !== $added_args ) {
430+
$fragment = strstr( $src, '#' );
431+
if ( false !== $fragment ) {
432+
$src = substr( $src, 0, -strlen( $fragment ) );
433+
}
434+
435+
if ( '' !== $ver_to_add ) {
436+
$src .= ( str_contains( $src, '?' ) ? '&' : '?' ) . 'ver=' . rawurlencode( $ver_to_add );
437+
}
438+
if ( '' !== $added_args ) {
439+
$src .= ( str_contains( $src, '?' ) ? '&' : '?' ) . $added_args;
440+
}
441+
442+
if ( false !== $fragment ) {
443+
$src .= $fragment;
430444
}
431445
}
432-
$src = add_query_arg( rawurlencode_deep( $query_args ), $src );
433446

434447
/** This filter is documented in wp-includes/class-wp-scripts.php */
435448
$src = esc_url_raw( apply_filters( 'script_loader_src', $src, $handle ) );

src/wp-includes/class-wp-styles.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -407,19 +407,32 @@ public function _css_href( $src, $ver, $handle ) {
407407
$src = $this->base_url . $src;
408408
}
409409

410-
$query_args = array();
410+
$ver_to_add = '';
411411
if ( empty( $ver ) && null !== $ver && is_string( $this->default_version ) ) {
412-
$query_args['ver'] = $this->default_version;
412+
$ver_to_add = $this->default_version;
413413
} elseif ( is_scalar( $ver ) ) {
414-
$query_args['ver'] = (string) $ver;
414+
$ver_to_add = (string) $ver;
415415
}
416-
if ( isset( $this->args[ $handle ] ) ) {
417-
parse_str( $this->args[ $handle ], $parsed_args );
418-
if ( $parsed_args ) {
419-
$query_args = array_merge( $query_args, $parsed_args );
416+
417+
$added_args = (string) ( $this->args[ $handle ] ?? '' );
418+
419+
if ( '' !== $ver_to_add || '' !== $added_args ) {
420+
$fragment = strstr( $src, '#' );
421+
if ( false !== $fragment ) {
422+
$src = substr( $src, 0, -strlen( $fragment ) );
423+
}
424+
425+
if ( '' !== $ver_to_add ) {
426+
$src .= ( str_contains( $src, '?' ) ? '&' : '?' ) . 'ver=' . rawurlencode( $ver_to_add );
427+
}
428+
if ( '' !== $added_args ) {
429+
$src .= ( str_contains( $src, '?' ) ? '&' : '?' ) . $added_args;
430+
}
431+
432+
if ( false !== $fragment ) {
433+
$src .= $fragment;
420434
}
421435
}
422-
$src = add_query_arg( rawurlencode_deep( $query_args ), $src );
423436

424437
/**
425438
* Filters an enqueued style's fully-qualified URL.

0 commit comments

Comments
 (0)