Introduce `wp_removable_query_args()`, which returns an array of single-use query variables which can be removed from a URL.
Also applies the function to the return URL when the Customizer is closed. Fixes #32692 Props swissspidy, Mte90 Built from https://develop.svn.wordpress.org/trunk@33849 git-svn-id: http://core.svn.wordpress.org/trunk@33817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
9666aec8d1
commit
606b6d15f1
|
@ -21,6 +21,7 @@ $url = wp_unslash( $url );
|
||||||
$url = wp_validate_redirect( $url, home_url( '/' ) );
|
$url = wp_validate_redirect( $url, home_url( '/' ) );
|
||||||
if ( $return ) {
|
if ( $return ) {
|
||||||
$return = wp_unslash( $return );
|
$return = wp_unslash( $return );
|
||||||
|
$return = remove_query_arg( wp_removable_query_args(), $return );
|
||||||
$return = wp_validate_redirect( $return );
|
$return = wp_validate_redirect( $return );
|
||||||
}
|
}
|
||||||
if ( ! $return ) {
|
if ( ! $return ) {
|
||||||
|
|
|
@ -865,24 +865,7 @@ function post_form_autocomplete_off() {
|
||||||
* @since 4.2.0
|
* @since 4.2.0
|
||||||
*/
|
*/
|
||||||
function wp_admin_canonical_url() {
|
function wp_admin_canonical_url() {
|
||||||
$removable_query_args = array(
|
$removable_query_args = wp_removable_query_args();
|
||||||
'message', 'settings-updated', 'saved',
|
|
||||||
'update', 'updated', 'activated',
|
|
||||||
'activate', 'deactivate', 'locked',
|
|
||||||
'deleted', 'trashed', 'untrashed',
|
|
||||||
'enabled', 'disabled', 'skipped',
|
|
||||||
'spammed', 'unspammed',
|
|
||||||
'error',
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filter the list of URL parameters to remove.
|
|
||||||
*
|
|
||||||
* @since 4.2.0
|
|
||||||
*
|
|
||||||
* @param array $removable_query_args An array of parameters to remove from the URL.
|
|
||||||
*/
|
|
||||||
$removable_query_args = apply_filters( 'removable_query_args', $removable_query_args );
|
|
||||||
|
|
||||||
if ( empty( $removable_query_args ) ) {
|
if ( empty( $removable_query_args ) ) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -824,6 +824,47 @@ function remove_query_arg( $key, $query = false ) {
|
||||||
return add_query_arg( $key, false, $query );
|
return add_query_arg( $key, false, $query );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of single-use query variable names that can be removed from a URL.
|
||||||
|
*
|
||||||
|
* @since 4.4.0
|
||||||
|
*
|
||||||
|
* @return array An array of parameters to remove from the URL.
|
||||||
|
*/
|
||||||
|
function wp_removable_query_args() {
|
||||||
|
$removable_query_args = array(
|
||||||
|
'activate',
|
||||||
|
'activated',
|
||||||
|
'approved',
|
||||||
|
'deactivate',
|
||||||
|
'deleted',
|
||||||
|
'disabled',
|
||||||
|
'enabled',
|
||||||
|
'error',
|
||||||
|
'locked',
|
||||||
|
'message',
|
||||||
|
'same',
|
||||||
|
'saved',
|
||||||
|
'settings-updated',
|
||||||
|
'skipped',
|
||||||
|
'spammed',
|
||||||
|
'trashed',
|
||||||
|
'unspammed',
|
||||||
|
'untrashed',
|
||||||
|
'update',
|
||||||
|
'updated',
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the list of query variables to remove.
|
||||||
|
*
|
||||||
|
* @since 4.2.0
|
||||||
|
*
|
||||||
|
* @param array $removable_query_args An array of query variables to remove from a URL.
|
||||||
|
*/
|
||||||
|
return apply_filters( 'removable_query_args', $removable_query_args );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Walks the array while sanitizing the contents.
|
* Walks the array while sanitizing the contents.
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '4.4-alpha-33848';
|
$wp_version = '4.4-alpha-33849';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue