Добавляет или заменяет get параметры в url строке
Фильтры из функции
ds_get_query_url
Использование
$url = 'https://site.ru/test/?res=1&key=2';
$new_url = get_query_url(array('key' => 3), $url);
// $new_url = https://site.ru/test/?res=1&key=3
$new_url = get_query_url(array('myvar' => 3), $url);
// $new_url = https://site.ru/test/?res=1&key=2&myvar=3
Код функции
function get_query_url($get = array(), $url = '')
{
if (!$url) $url = get_current_url();
$parse = parse_url(str_replace('&', '&', $url));
$query = array();
if (!empty($parse['query'])) {
parse_str($parse['query'], $query);
}
if (is_string($get)) {
if (strpos($get, '?') === 0) {
$get = str_replace('?', '', $get);
}
parse_str($get, $array);
$get = $array;
}
$query = array_replace($query, $get);
$parse['query'] = use_filters('ds_get_query_url', http_build_query($query));
$url = $parse['scheme'] . '://' . $parse['host'] . $parse['path'] . '?' . $parse['query'];
return $url;
}