当前位置: 首页>>技术教程>>正文


如何从URL检索图像并设置为精选图像/帖子缩略图

webfans 技术教程 , 去评论

问题描述

给定Vimeo ID,我可以通过Vimeo Simple API从视频中检索缩略图。而不是每次我的页面加载时调用API我想使用save_post挂钩(类似于this question)将图像设置为后缩略图。

我的问题是我不熟悉php中的URL调用。我想知道:

  1. WP_Http相比,使用 curl 等方法的好处/缺点。一个”better”比另一个?

  2. 我应该调用函数来成功设置后缩略图的顺序。

任何帮助将不胜感激。

最佳解决方法

我最喜欢处理这个问题的方法是使用我在另一个堆栈帖子上发现的一些文档化的函数: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.)要回答第二个问题,我需要知道你要如何命名你正在下载的文件?

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2170.html,转载请务必附带本地址声明。