Cómo recuperar una imagen de la URL y establecerla como imagen destacada / miniatura de publicación

15

Dado un ID de Vimeo, puedo recuperar una miniatura del video a través de Vimeo Simple API. En lugar de llamar a la API cada vez que mi página se carga, quiero establecer la imagen como la miniatura de publicación usando el gancho save_post (similar a esta pregunta ).

Mi problema es que no estoy familiarizado con las llamadas de URL en php. Me gustaría saber:

  1. los beneficios / inconvenientes de usar un método como curl comparado con WP_Http . ¿Es uno "mejor" que el otro?

  2. el orden en el que debo llamar a las funciones para establecer correctamente la miniatura de publicación.

Cualquier ayuda sería muy apreciada.

    
pregunta David John Smith 19.10.2010 - 02:57

2 respuestas

12

Mi forma favorita de manejar este problema ha sido utilizar una pequeña función documentada que descubrí en otra publicación de pila: media_sideload_image

Funciona al obtener una URL de imagen en el directorio de carga de WordPress y luego asociar la imagen a los archivos adjuntos de una publicación.

Puedes intentarlo así:

// 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);
}  
    
respondido por el sxalexander 01.10.2011 - 01:31
4

Hola @David John Smith :

1.) Si estás en WordPress, (casi) siempre usa WP_Http ; Es una de las muchas cosas que me encanta de trabajar con WordPress. ¿Por qué llamarlo y no CURL? Bueno, porque tiene una sintaxis más agradable y llama a CURL si CURL está disponible. Si no, elige una de las otras 3 opciones. Así que realmente es un kit brillante.

2.) Para responder la segunda pregunta, ¿necesitaré saber cómo desea asignar un nombre a los archivos que está descargando?

    
respondido por el MikeSchinkel 19.10.2010 - 06:17

Lea otras preguntas en las etiquetas