如何从URL中检索图像并将其设置为特色图像/缩略图
-
16-10-2019 - |
题
给定VIMEO ID,我可以通过Vimeo Simple API从视频中检索缩略图。而不是每当我的页面加载我要将图像设置为缩略图 save_post
钩(类似于 这个问题).
我的问题是我不熟悉PHP中的URL呼叫。我想知道:
使用卷曲之类的方法的好处/缺点
WP_Http
. 。这个比那个好吗?我应该调用功能以成功设置缩略图的顺序。
任何帮助将不胜感激。
解决方案
我最喜欢处理此问题的方法是使用我在另一个堆栈帖子上发现的一些记录的功能: 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);
}
其他提示
你好 @David John Smith:
1.)如果您在WordPress中,(几乎)始终使用 WP_Http
;这是我喜欢与WordPress合作的许多事情之一。为什么要称呼它而不是卷发?好吧,因为它具有更好的语法,并且如果可用的话,它会调用卷发。如果没有,它将从其他3个选项之一中选择。因此,这确实是一件很棒的套件。
2.)要回答第二个问题,我需要知道您要如何命名要下载的文件?