我使用wordpress函数media_sideload_image从外部链接上传图像,如下所示:
$url = 'http://pinnaclepublic.pinewoodsa.co.za/vehicles/plugins/ViewImage.aspx?guid=F92A44F3-71AC-4B2C-8BC4-8CC53578B722&VehicleId=101887&ImageNumber=1&Size=3';
$post_id = 101;
media_sideload_image ($url,$post_id);
但我得到了错误:
WP_Error Object
(
[errors] => Array
(
[image_sideload_failed] => Array
(
[0] => Invalid image URL
)
)
[error_data] => Array
(
)
)
问题:我如何使media_sideload_image能够正确地使用这个我无法更改的特定url。
问题:
URL有问题。Wordpress的文件模块无法从您提供的URL中识别任何文件扩展名。因此引发此错误。查看此函数的源代码https://developer.wordpress.org/reference/functions/media_sideload_image/
解决方案:
在过去的一个小时里,我一直面临着这个问题。在严重头痛之后,我可以使用破解方法来解决它
您所要做的就是在等于";。jpeg";或";。png";。
示例:
$url = 'http://pinnaclepublic.pinewoodsa.co.za/vehicles/plugins/ViewImage.aspx?guid=F92A44F3-71AC-4B2C-8BC4-8CC53578B722&VehicleId=101887&ImageNumber=1&Size=3';
$url_with_pseudo_extension = $url . '?ext=.jpeg'
这将使URL能够安全地从文件模块中退出,而不会引发任何错误。
如果您在/wp-admin
的上下文之外使用此函数您需要包含media.php和dependent includes。
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
有关media_sideload_image()的文档,请参阅注释
您也可以创建自己的函数,如以下答案