Функция build_query() в WordPress 2.3.0: использование и примеры работы

Функция 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 и строить различные ссылки на сайте.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *