WordPress Version: 5.5
/**
* Removes arguments from a query string if they are not present in a URL
* DO NOT use this in plugin code.
*
* @since 3.4.0
* @access private
*
* @param string $query_string
* @param array $args_to_check
* @param string $url
* @return string The altered query string
*/
function _remove_qs_args_if_not_in_url($query_string, array $args_to_check, $url)
{
$parsed_url = parse_url($url);
if (!empty($parsed_url['query'])) {
parse_str($parsed_url['query'], $parsed_query);
foreach ($args_to_check as $qv) {
if (!isset($parsed_query[$qv])) {
$query_string = remove_query_arg($qv, $query_string);
}
}
} else {
$query_string = remove_query_arg($args_to_check, $query_string);
}
return $query_string;
}