Функция build_query() │ WP 2.3.0
Функция build_query() используется для создания URL-запросов на основе ассоциативного или индексированного массива.
Это удобная функция, которая упрощает построение URL-запросов. Она устанавливает разделитель как & и использует функцию _http_build_query().
Использование функции
Функция build_query() используется в:
add_query_arg()
Производительность
- 1 раз — 0.000001 сек (мгновенно)
- 50000 раз — 0.05 сек (быстро)
- PHP: 7.2.5, WP 5.0
Без хуков
Возвращаемое значение
Функция возвращает строку. Это закодированная URL-строка.
Пример использования
build_query( $data );
Параметры функции
$data(array) (обязательный): массив пар "ключ/значение", который будет закодирован для URL.
Примеры работы функции
// Пример 1
echo build_query( [ 'one' => 'foo', 'two' => 1 ] ); //> one=foo&two=1
// Пример 2
echo build_query( [ 'one' => null, 'two' => 0 ] ); //> two=0
// Пример 3
echo build_query( [ 'one' => 'сирилик', 'two' => '' ] ); //> one=сирилик&two=
// Пример 4
echo build_query( [ 'one' => 'foo bar', 'two' => false ] ); //> one=foo bar&two=0
// Пример 5
echo build_query( [ 'one' => '"<>&+', 'two' => true ] ); //> one="<>&+&two=1
Как видно, использование функции build_query() схоже с родной функцией PHP http_build_query():
echo http_build_query( [ 'one' => 'foo', 'two' => 1 ] ); //> one=foo&two=1
Функция build_query() не кодирует значения, она вызывает _http_build_query() с urlencode = false. Это означает, что вы должны предварительно кодировать каждый ключ и значение входного массива! Или предполагается, что значения не нужно кодировать.
Пример создания запроса
$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 );
}
Примечания
- Смотрите:
_http_build_query(), используемая для построения запроса.
Изменения
Функция build_query() была введена в версии 2.3.0.
Код функции в WP 6.7.2
function build_query( $data ) {
return _http_build_query( $data, null, '&', '', false );
}
Связанные функции
get_self_link()admin_url()attachment_url_to_postid()comment_link()content_url()- И многие другие.
Эти функции помогают работать с URL и строить различные ссылки на сайте.