it-swarm.dev

Jak získat obrázek z adresy URL a nastavit jako doporučený obrázek/miniaturu

Vzhledem k Vimeo ID, mohu získat náhled z videa přes Vimeo Simple API. Namísto volání API pokaždé, když se moje stránka načte, chci nastavit obrázek jako miniaturu příspěvku pomocí háku save_post (podobně jako tato otázka ).

Můj problém je, že nejsem obeznámen s URL volání v php. Chtěl bych vědět:

  1. výhody/nevýhody použití metody jako curl ve srovnání s WP_Http. Je jeden "lepší" než ten druhý?

  2. pořadí, ve kterém mám zavolat funkce pro úspěšné nastavení miniatury příspěvku.

Každá pomoc by byla velmi oceněna.

16
David John Smith

Můj nejoblíbenější způsob, jak se s tímto problémem vypořádat, bylo použít malou dokumentovanou funkci, kterou jsem objevil na jiném příspěvku zásobníku: media_sideload_image

Funguje to tak, že načtete url obrázku do adresáře pro upload WordPressu a poté obrázek připojíte k přílohám příspěvku.

Můžete to zkusit takto:

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

Hi @David John Smith :

1.) Pokud jste ve WordPressu, (téměř) vždy používejte WP_Http; je to jedna z mnoha věcí, které mám rád o práci s WordPressem. Proč to říkat a ne CURL? No, protože má hezčí syntaxi a volá CURL, pokud je CURL k dispozici. Pokud ne, zvolí jednu z dalších 3 možností. Takže je to opravdu skvělý kus kitu.

2.) Chcete-li odpovědět na druhou otázku, budu muset vědět, jak chcete pojmenovat soubory, které stahujete?

4
MikeSchinkel