问题描述

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

然而,有几千张图像,我们想自动拉扯,生成各种尺寸,然后附加到帖子,以节省大约一个星期的工作!

有没有办法可以通过 URL 从远程站点获取图像并保存在我的 wp-uploads 文件夹中?我猜这个使用 wp_http,但我不熟悉。

一旦我得到图像并保存它,我可以使用 wp_generate_attachment_metadata 创建各种大小和 wp_insert_attachment 附加到一个帖子。

谢谢西蒙

最佳解决方案

实际上有一个很好的功能,可以为你做所有这三件事情:

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

第一个参数是要下载的图像的远程 URL 。第二个参数是要附加图像的帖子的帖子 ID 。第三个参数是可选的,但如果包含说明,则是一个描述。

我建议找到一种方法来限制下载,以便您不要停止超时,例如限制每次加载时提取的图像数量,并设置导入器在下载之间刷新自身,或使用 AJAX 来执行它们一次异步。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。