通过URL以编程方式获取图像并保存在上载文件夹中


14

我参与了从另一个CMS到WordPress的大规模迁移。我们有数据库的副本,并且已经研究出如何提取内容并使用wpdb类的实例化从中以编程方式创建WordPress帖子。

但是,有两千张图片我们希望自动进行浏览,生成各种尺寸,然后附加到帖子上,以节省大约一周的工作!

有没有一种方法可以通过URL从远程站点获取图像并将其保存在wp-uploads文件夹中?我猜这用wp_http但是我不熟悉。

有了图像并将其保存后,我就可以使用它wp_generate_attachment_metadata来创建各种尺寸并将wp_insert_attachment其附加到帖子上。

谢谢西蒙

Answers:


29

实际上,有一个强大的功能可以为您完成所有这三件事:

media_sideload_image( $url, $post_id, $description );

第一个参数是您要下载的图像的远程URL。第二个参数是要将图像附加到的帖子的帖子ID。第三个参数是可选的,但如果包含的话,将作为描述。

我建议您找到一种限制下载速度的方法,以免您超时,例如限制每次加载时提取的图像数量,并将导入器设置为在两次下载之间刷新自身,或者使用AJAX进行一次下载一次异步。


1
约翰绝对是一位了不起的先生,非常感谢您-它的运行非常完美。节流不是问题,因为我将其设置为在每次导入后等待按键,以便我们有机会手动检查详细信息并记录有问题的细节。
西蒙·布莱克本

1
只是因为我需要将附件的ID连接到另一个帖子,所以这是一个很好的方法
axel

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.