Answers:
我最喜欢的处理此问题的方法是使用我在另一篇堆栈文章中发现的一些文档化功能: media_sideload_image
它的工作原理是:将图像URL提取到WordPress上传目录,然后将图像与帖子的附件关联。
您可以这样尝试:
// 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);
}
嗨@David John Smith:
1.)如果您使用的是WordPress,请(几乎)始终使用WP_Http
;这是我喜欢使用WordPress的众多优点之一。为什么调用它而不是CURL?好吧,因为它具有更好的语法,并且如果CURL可用,它将调用CURL。如果不是,则从其他3个选项之一中进行选择。因此,这确实是一个绝妙的工具。
2.)要回答第二个问题,我需要知道如何命名要下载的文件?
post_thumbnail()
或访问与帖子相关的缩略图get_post_meta()
。我想用帖子ID命名是很有意义的。