Функция wp_remote_retrieve_body()
используется для извлечения тела ответа из HTTP-запроса, выполненного с помощью функций wp_remote_get()
, wp_remote_post()
и других. Эта функция удобна для получения контента, возвращаемого сервером, после выполнения HTTP-запроса.
wp_remote_retrieve_body( $response )
- $response (array|WP_Error) (обязательный): Ответ, полученный от HTTP-запроса. Это должен быть массив, возвращаемый функциями
wp_remote_get()
,wp_remote_post()
и аналогичными.
Возвращаемое значение
Функция возвращает тело ответа в виде строки или пустую строку, если тело ответа не было найдено или запрос завершился неудачно.
Извлечение тела ответа из GET-запроса
В этом примере мы выполняем GET-запрос к указанному URL и извлекаем тело ответа.
$response = wp_remote_get( 'https://example.com/api/data' );
if ( is_array( $response ) ) {
$body = wp_remote_retrieve_body( $response );
echo $body;
}
Этот код сначала выполняет GET-запрос к URL https://example.com/api/data
с использованием функции wp_remote_get
. Затем он проверяет, является ли ответ массивом, используя функцию is_array
. Если это так, код извлекает тело ответа с помощью wp_remote_retrieve_body
и выводит его.
Обработка ошибок
Важно уметь обрабатывать ошибки при выполнении HTTP-запросов. В следующем примере показано, как это сделать.
$response = wp_remote_get( 'https://example.com/api/data' );
if ( is_wp_error( $response ) ) {
echo 'Error: ' . $response->get_error_message();
} else {
$body = wp_remote_retrieve_body( $response );
echo $body;
}
Этот код сначала выполняет GET-запрос к URL https://example.com/api/data
с использованием функции wp_remote_get
. Затем он проверяет, является ли ответ объектом ошибки WordPress, используя функцию is_wp_error
. Если это так, код выводит сообщение об ошибке с помощью get_error_message
. Если нет, он извлекает тело ответа с помощью wp_remote_retrieve_body
и выводит его.
Практический пример
В этом примере мы выполняем GET-запрос к указанному URL и извлекаем тело ответа.
$url = 'https://jsonplaceholder.typicode.com/posts/1';
$response = wp_remote_get( $url );
// Проверка на наличие ошибок
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Что-то пошло не так: $error_message";
} else {
// Извлечение тела ответа
$body = wp_remote_retrieve_body( $response );
echo 'Тело ответа: <pre>';
echo $body;
echo '</pre>';
}
В этом примере отправляется GET-запрос к https://jsonplaceholder.typicode.com/posts/1
. Если запрос успешен, тело ответа (JSON-объект) извлекается и выводится. В противном случае выводится сообщение об ошибке.
Пример возвращаемого значения
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit ... "
}
Этот пример показывает типичный JSON-объект, возвращаемый сервером, который содержит данные поста, такие как userId
, id
, title
и body
.
Заключение
Функция wp_remote_retrieve_body()
является полезным инструментом для извлечения тела ответа из HTTP-запросов в WordPress. Она позволяет легко получать контент, возвращаемый сервером, и использовать его в различных сценариях, таких как обработка данных API или получение HTML-контента.