Isso não é possível por meio da API; você precisa buscar a imagem você mesmo e enviar os dados para a API . Blockquote
- Isso cita Ryan sobre o assunto mencionado em @Dan answer.
Como carregar imagens de lado
Observe que o valor de retorno media_sideload_image()
também pode ser uma instância de \WP_Error
. Você só precisa anexá-lo a uma postagem, o que é bastante simples:
$media = media_sideload_image(
'http://i.imgur.com/bcJvAj0.jpg',
$post->ID,
'Some image description',
'src'
);
if ( ! empty( $media ) and ! is_wp_error( $media ) ) {
// reference new image to set as featured
$attachments = get_posts( [
'post_type' => 'attachment',
'posts_per_page' => 1,
'post_status' => 'any',
'post_parent' => $post->ID,
] );
if ( is_array( $attachments ) ) {
set_post_thumbnail( $post->ID, $attachments[0]->ID );
}
// Test print our image. The return value is the src of the sideloaded image.
printf( '<img src="%s" />', $media );
}
Os internos
Um breve rastreio do núcleo que explica por que você deve ficar com a API:
Dê uma olhada na fonte de media_sideload_image()
para ver se usa download_url()
internamente, que usa wp_safe_remote_get()
, um wrapper para \WP_HTTP::get()
. Isso significa que oferece toda a API do WP, sendo bastante seguro, depurável e fácil de usar. O valor de retorno de download_url()
é o resultado de wp_tempnam()
, que usa todos os possíveis /tmp
locais em conta (existem muitas) e garante que sua localização seja gravável . O media_handle_sideload()
gerará todos os dados e metadados de anexos necessários.