Come recuperare immagini da URL e impostare come Foto di presentazione / miniature postale

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

  •  16-10-2019
  •  | 
  •  

Domanda

Dato un Vimeo ID, che può recuperare una miniatura del video tramite Vimeo semplice API. Invece di chiamare l'API ogni volta i miei carichi Vorrei chiedere per impostare l'immagine come il post miniatura utilizzando il gancio save_post (simile a questa domanda ).

Il mio problema è che non ho familiarità con le chiamate URL in PHP. Vorrei sapere:

  1. i vantaggi / svantaggi di utilizzando un metodo come ricciolo rispetto al WP_Http. È uno "migliore" rispetto agli altri?

  2. l'ordine in cui avrei dovuto chiamare funzioni per impostare con successo la miniatura posta.

Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Il mio modo preferito di gestire questo problema è stato quello di usare un po 'documentato funzione che ho scoperto su un altro post stack: media_sideload_image

Funziona con il recupero di un URL immagine al dir di upload WordPress e quindi associando l'immagine per gli allegati di un post.

Si può provare in questo modo:

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

Altri suggerimenti

Ciao @ David John Smith :

1) Se si è in WordPress, (quasi) sempre utilizzare WP_Http.; è una delle tante cose che amo di lavorare con WordPress. Perché chiamare e non CURL? Bene, perché ha una sintassi più bello e si chiama CURL CURL se è disponibile. In caso contrario, si sceglie da una delle 3 altre opzioni. Quindi è davvero un brillante pezzo di kit.

2.) Per rispondere alla seconda domanda ho bisogno di sapere come si desidera denominare i file che si sta scaricando?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top