Описание функции wp_remote_post()
Функция wp_remote_post() отправляет HTTP POST-запрос к указанному URL. Она используется для взаимодействия с удаленными API, отправки данных на серверы и получения ответов. Функция поддерживает множество параметров для настройки запросов, включая заголовки, тело запроса и обработку ошибок.
Эта функция полезна для плагинов и тем, которые требуют взаимодействия с внешними сервисами
Параметры
$url
Тип: string
Обязательный: Да
Описание: URL, к которому будет отправлен запрос
Возможные значения:
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив аргументов для настройки запроса
Возможные значения:
method: POST
body: Данные для отправки
headers: Массив заголовков
timeout: Время ожидания ответа в секундах
sslverify: 1,
Возвращаемое значение
Тип: array|WP_Error
Описание: Массив ответа или объект WP_Error в случае ошибки
Возможные значения:
• Массив с параметрами ответа, включая ‘response’, ‘body’, ‘headers’
• WP_Error в случае неудачи
Примеры использования
Отправка простого POST-запроса и обработка ответа
$response = wp_remote_post('https://api.example.com/endpoint');
if (is_wp_error($response)) {
echo 'Ошибка: ' . $response->get_error_message();
} else {
echo 'Ответ: ' . wp_remote_retrieve_body($response);
}
Выводит сообщение об ошибке или ответ сервера
Отправка POST-запроса с данными и заголовками
$args = array(
'body' => array('key' => 'value'),
'timeout' => 15,
'headers' => array('Authorization' => 'Bearer YOUR_TOKEN')
);
$response = wp_remote_post('https://api.example.com/endpoint', $args);
Убедитесь, что ваш токен авторизации корректен
Обработка ошибки и вывод сообщения в лог
$response = wp_remote_post('https://api.example.com/endpoint');
if (is_wp_error($response)) {
// Обработка ошибки
t error_log($response->get_error_message());
} else {
// Обработка успешного ответа
}
Используйте error_log для отладки
Безопасность
Валидация входных данных: Параметры url и args должны быть корректными
Санитизация: WordPress автоматически очищает данные перед отправкой
Рекомендации: Не забывайте проверять и фильтровать входящие данные с сервера
— Связанные функции
Отправляет HTTP GET-запрос
Отправляет HTTP-запрос любого типа
— Хуки
Фильтрует параметры перед отправкой HTTP-запроса
Позволяет изменять аргументы HTTP-запроса
— Примечания
– Ограничения
Некоторые сервера могут блокировать запросы
– Частые проблемы
- Ошибка в случае недоступного URL
- Проблемы с SSL-сертификатами при использовании https