URL'den resim nasıl alınır ve öne çıkan resim / yayın küçük resmi olarak nasıl ayarlanır?


17

Bir Vimeo Kimliği verildiğinde, Vimeo Simple API aracılığıyla videodan bir küçük resim alabilirim. Sayfam her yüklendiğinde API'yi çağırmak yerine, görüntüyü save_postkanca kullanarak yazı küçük resmi olarak ayarlamak istiyorum ( bu soruya benzer ).

Benim sorunum ben php URL çağrıları aşina değil olmasıdır. Bilmek isterim:

  1. kıvrılma gibi bir yöntem kullanmanın yararları / sakıncaları WP_Http. Biri diğerinden "daha iyi" midir?

  2. Yazı küçük resmini başarıyla ayarlamak için işlevleri çağırmam gereken sıra.

Herhangi bir yardım büyük mutluluk duyacağız.


Bunu çözebilen biri var mı? Ben de bunu yapmaya çalışıyorum.

Yanıtlar:


12

Bu sorunu ele almanın en sevdiğim yolu, başka bir yığın postasında keşfettiğim küçük bir dokümante edilmiş işlev kullanmak oldu: media_sideload_image

Bir resim URL'sini WordPress yükleme dizinine getirerek ve ardından görüntüyü bir gönderinin ekleriyle ilişkilendirerek çalışır.

Bunu şöyle deneyebilirsiniz:

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

4

Selam @ David John Smith :

1.) WordPress'deyseniz (neredeyse) daima kullanın WP_Http; WordPress ile çalışmayı sevdiğim birçok şeyden biri. Neden CURL değil de diyelim? Güzel bir sözdizimi olduğundan ve CURL mevcutsa CURL'yi çağırdığı için. Değilse, diğer 3 seçenekten birini seçer. Bu gerçekten mükemmel bir kit parçası.

2.) 2. soruyu cevaplamak için indirdiğiniz dosyaları nasıl adlandırmak istediğinizi bilmem gerekir?


Teşekkürler Mike. Yazı küçük resimlerine gelince, nasıl adlandırıldıklarını umursamıyorum, sadece post_thumbnail()veya ile bir gönderiyle ilgili olarak onlara erişmek istiyorum get_post_meta(). Sanırım posta kimliğiyle adlandırmak mantıklı olurdu.
David John Smith

herhangi bir güncelleme var mı?
NetConstructor.com

@NetConstructor - "Bekleyen" durumda olan soruları takip etmek gerçekten zor, bu yüzden hayır. Yer işaretleri çubuğumda "beklemede" bir klasör oluşturdum, bununla daha tutarlı olamayacağımı göreceğim. Ama şu anda bunun için vaktim yok, bu yüzden ona geri dönmek zorunda kalacak.
MikeSchinkel

@Mike - teşekkürler Mike, sadece burada bir çözüm olabileceğini düşündüm çünkü diğer şeylerin yanı sıra bu şeylerin ustası gibi görünüyorsun :-)
NetConstructor.com

@ NetConstructor.com - LOL! Teşekkürler, ben sadece hata ayıklayıcının ustasıyım, hepsi bu. :)
MikeSchinkel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.