get_query_url()

Добавляет или заменяет 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; 
}