Cómo recuperar la imagen de la URL y establecer como imagen destacados / puesto en miniatura

wordpress.stackexchange https://wordpress.stackexchange.com/questions/3029

  •  16-10-2019
  •  | 
  •  

Pregunta

Dado un Vimeo ID, que puede recuperar una imagen en miniatura del vídeo a través de Vimeo API simple. En lugar de llamar a la API cada vez que mis cargas de la página que desea establecer la imagen como el puesto de miniatura con el gancho save_post (similar a esta pregunta ).

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

  1. los beneficios / inconvenientes de la utilización de un método como el enrollamiento en comparación con WP_Http. Es una "mejor" que el otro?

  2. el orden en que debería llamar a funciones para configurar correctamente el puesto en miniatura.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Mi forma favorita de manejar este problema ha sido la de utilizar un poco documentada función descubrí en otro post pila: media_sideload_image

Su acción consiste en extraer una URL de la imagen para el directorio de WordPress carga y luego asociar la imagen de los archivos adjuntos de un poste.

Puede intentarlo de esta manera:

// 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);
}  

Otros consejos

Hola @ David John Smith

1) Si se encuentra en WordPress, (casi) siempre utilizar WP_Http.; que es una de las muchas cosas que me gustan de trabajar con WordPress. ¿Por qué llamarlo y no CURL? Bueno, porque tiene una sintaxis más agradable y que llama CURL CURL si está disponible. Si no, se elige a partir de uno de los otros 3 opciones. Por lo que realmente es una brillante pieza de kit.

2.) Para responder a la segunda cuestión que voy a necesitar saber cómo desea nombrar los archivos que se están descargando?

Licenciado bajo: CC-BY-SA con atribución
scroll top