build_query()WP 2.3.0

Собирает строку параметров запроса URL из переданного простого/ассоциативного массива.

Функция нужна для удобного создания URL с параметрами запроса. В качестве разделителя параметров ставиться знак &.

В отличии от аналогичной PHP функцию http_build_query(), эта функция не кодирует символы и не имеет дополнительных параметров. См. пример ниже.

Это обертка для функции _http_build_query().

Смотрите также PHP функцию http_build_query() - генерирует URL-кодированную строку запроса.

Обратное действие можно сделать с помощью функции wp_parse_str.

Основа для: add_query_arg()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.05 сек (скорость света) | PHP 7.2.5, WP 5.0

Хуков нет.

Возвращает

Строку. URL с параметрами запроса.

Использование

build_query( $data );
$data(массив) (обязательный)
Пары ключ/значение из которых нужно построить параметры запроса для URL.

Примеры

0

#1 Демонстрация работы

echo build_query( [ 'one' => 'foo',     'two' => 1     ] ); //> one=foo&two=1
echo build_query( [ 'one' => null,      'two' => 0     ] ); //> two=0
echo build_query( [ 'one' => 'సిరిలిక్',   'two' => ''    ] ); //> one=సిరిలిక్&two=
echo build_query( [ 'one' => 'foo bar', 'two' => false ] ); //> one=foo bar&two=0
echo build_query( [ 'one' => '"<>&+',   'two' => true  ] ); //> one="<>&+&two=1

Для сравнения тоже самое с использованием нативной функции PHP:

echo http_build_query( [ 'one' => 'foo',    'two' => 1     ] ); //> one=foo&two=1
echo http_build_query( [ 'one' => null,     'two' => 0     ] ); //> two=0
echo http_build_query( [ 'one' => 'సిరిలిక్',  'two' => ''    ] ); //one=%E0%B0%B8%E0%B0%BF%E0%B0%B0%E0%B0%BF%E0%B0%B2%E0%B0%BF%E0%B0%95%E0%B1%8D&two=
echo http_build_query( [ 'one' => 'foo bar', 'two' => false ] ); //> one=foo+bar&two=0
echo http_build_query( [ 'one' => '"<>&+',   'two' => true  ] ); //> one=%22%3C%3E%26%2B&two=1
0

#2 Пример создания запроса

$query = build_query([
	'action'   => 'info',
	'datatype' => 'json',
]);
$response = wp_remote_get( "https://apisite.com/server/?$query" );

if( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) === 200 ){
	$json = json_decode( wp_remote_retrieve_body( $response ) );

	print_r( $json );
}

Заметки

Список изменений

С версии 2.3.0 Введена.

Код build_query() WP 6.1.1

function build_query( $data ) {
	return _http_build_query( $data, null, '&', '', false );
}