Como recuperar a imagem da URL e definir como imagem em destaque / pós-miniatura

15

Dado um ID do Vimeo, posso recuperar uma miniatura do vídeo por meio da API simples do Vimeo. Em vez de chamar a API toda vez que a minha página for carregada, desejo definir a imagem como a miniatura da postagem usando o save_post hook (semelhante a esta questão ).

Meu problema é que eu não estou familiarizado com as chamadas de URL no php. Eu gostaria de saber:

  1. os benefícios / desvantagens de usar um método como curl em comparação com WP_Http . Um é "melhor" que o outro?

  2. a ordem em que devo chamar funções para definir com sucesso a miniatura da postagem.

Qualquer ajuda seria muito apreciada.

    
por David John Smith 19.10.2010 / 02:57

2 respostas

12

Minha maneira favorita de lidar com esse problema foi usar uma pequena função documentada que descobri em outro post de pilha: media_sideload_image

Funciona buscando um URL de imagem no diretório de upload do WordPress e associando a imagem aos anexos de uma postagem.

Você pode tentar assim:

// required libraries for media_sideload_image
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');

// $post_id == the post you want the image to be attached to
// $video_thumb_url == the vimeo video's thumb url
// $description == optional description

// load the image
$result = media_sideload_image($video_thumb_url, $post_id, $description);

// then find the last image added to the post attachments
$attachments = get_posts(array('numberposts' => '1', 'post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC'));


if(sizeof($attachments) > 0){
    // set image as the post thumbnail
    set_post_thumbnail($post_id, $attachments[0]->ID);
}  
    
por sxalexander 01.10.2011 / 01:31
4

Oi @ David John Smith :

1.) Se você estiver no WordPress, (quase) sempre use WP_Http ; é uma das muitas coisas que eu adoro em trabalhar com o WordPress. Por que chamá-lo e não CURL? Bem, porque tem uma sintaxe mais agradável e chama CURL se CURL estiver disponível. Se não, ele escolhe uma das três outras opções. Então é realmente uma peça brilhante de kit.

2.) Para responder à segunda pergunta, eu preciso saber como você deseja nomear os arquivos que está baixando?

    
por MikeSchinkel 19.10.2010 / 06:17