วิธีที่ฉันโปรดปรานในการจัดการปัญหานี้คือการใช้ฟังก์ชั่นเอกสารเล็กน้อยที่ฉันค้นพบในโพสต์สแต็กอื่น: 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);
}