wp_remote_get() — Requisições HTTP externas
Causa
Usar file_get_contents() ou cURL diretamente ignora a camada de abstração do WordPress e pode falhar em ambientes com restrições.
Como resolver
Sempre use a WordPress HTTP API (wp_remote_get, wp_remote_post). Verifique erros com is_wp_error() e trate o código de resposta antes de usar o body.
PHP
<?php
$url = 'https://api.exemplo.com/produtos';
$response = wp_remote_get($url, [
'timeout' => 15,
'headers' => ['Accept' => 'application/json'],
'sslverify' => true,
]);
if (is_wp_error($response)) {
error_log('Erro HTTP: ' . $response->get_error_message());
return [];
}
$status = wp_remote_retrieve_response_code($response);
if ($status !== 200) {
return [];
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
return $data ?? [];