วิธีดึงภาพจาก URL และตั้งเป็นภาพขนาดย่อ / โพสต์เด่น


17

รับรหัส Vimeo ฉันสามารถดึงภาพขนาดย่อจากวิดีโอผ่าน Vimeo Simple API แทนที่จะเรียกใช้ API ทุกครั้งที่โหลดหน้าเว็บของฉันฉันต้องการตั้งค่ารูปภาพเป็นรูปขนาดย่อโพสต์โดยใช้save_posthook (คล้ายกับคำถามนี้ )

ปัญหาของฉันคือฉันไม่คุ้นเคยกับการเรียกใช้ URL ใน PHP ผมอยากจะรู้ว่า:

  1. ผลประโยชน์ / WP_Httpข้อเสียของการใช้วิธีเช่นขดเมื่อเทียบกับ คนหนึ่ง "ดีกว่า" หรือไม่?

  2. ลำดับที่ฉันควรเรียกใช้ฟังก์ชันเพื่อตั้งค่าภาพขนาดย่อของโพสต์ให้สำเร็จ

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.


มีใครคิดออกหรือไม่ ฉันพยายามทำสิ่งนี้เช่นกัน

คำตอบ:


12

วิธีที่ฉันโปรดปรานในการจัดการปัญหานี้คือการใช้ฟังก์ชั่นเอกสารเล็กน้อยที่ฉันค้นพบในโพสต์สแต็กอื่น: media_sideload_image

มันทำงานได้โดยดึง URL ของภาพไปยัง WordPress อัพโหลด dir แล้วเชื่อมโยงภาพกับสิ่งที่แนบมาของโพสต์

คุณสามารถลองได้เช่น:

// 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

สวัสดี@ David John Smith :

1. ) ถ้าคุณอยู่ใน WordPress (เกือบ) จะใช้เสมอ WP_Http ; เป็นหนึ่งในหลาย ๆ สิ่งที่ฉันชอบเกี่ยวกับการทำงานกับ WordPress ทำไมถึงเรียกว่าไม่ใช่ CURL ดีเพราะมีไวยากรณ์ที่ดีกว่าและจะเรียก CURL ถ้า CURL สามารถใช้ได้ ถ้าไม่เลือกจากหนึ่งใน 3 ตัวเลือกอื่น ๆ ดังนั้นมันจึงเป็นชุดที่ยอดเยี่ยม

2. ) เพื่อตอบคำถามที่ 2 ฉันจะต้องรู้ว่าคุณต้องการตั้งชื่อไฟล์ที่คุณกำลังดาวน์โหลดอย่างไร?


ขอบคุณไมค์ สำหรับการโพสต์ภาพขนาดเล็กที่ฉันไม่สนใจจริงๆว่าพวกเขากำลังตั้งชื่อผมจะเช่นเดียวกับที่จะสามารถเข้าถึงพวกเขาที่เกี่ยวข้องกับการโพสต์ทั้งโดยหรือpost_thumbnail() get_post_meta()ฉันเดาว่าคงสมเหตุสมผลที่จะตั้งชื่อด้วยรหัสโพสต์
เดวิดจอห์นสมิ ธ

มีการอัพเดทอะไรบ้าง?
NetConstructor.com

@NetConstructor - มันยากมากที่จะติดตามคำถามที่อยู่ในสถานะ "รอดำเนินการ" ดังนั้นไม่ ฉันเพิ่งสร้างโฟลเดอร์ "รอดำเนินการ" บนแถบบุ๊คมาร์คของฉันฉันจะดูว่าฉันไม่สามารถสอดคล้องกับที่ แต่ตอนนี้ฉันไม่มีเวลาสำหรับคนนี้ดังนั้นจะต้องกลับมาอีก
MikeSchinkel

@ ไมค์ - ขอบคุณไมค์แค่คิดว่าคุณอาจจะมีทางออกที่นี่ทำให้เกิดในสิ่งอื่น ๆ ที่คุณดูเหมือนจะเป็นผู้เชี่ยวชาญของสิ่งนี้ :-)
NetConstructor.com

@ NetConstructor.com - ฮ่า ๆ ! ขอบคุณฉันเป็นแค่ผู้เชี่ยวชาญของ debugger เท่านั้น :)
MikeSchinkel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.