我正在编写一个自定义主题/插件,在该主题/插件中,我需要以编程方式从某些网页将图像下载到上载文件夹,然后将其作为帖子的一部分插入。
因此,我能够以编程方式找到图像URL,然后需要将其保存到wp-content下的上载文件夹中,但是该文件夹中具有用于保存图像的特定WordPress文件夹结构。
现在我的问题是,是否可以使用WordPress API或函数或方法从网络下载图像并将其保存到上载文件夹?如果是这样,那是什么。
否则,我该怎么做保存这些图像?
到目前为止,我正在这样做
$filetype = wp_check_filetype(basename($image_file_name), null );
$upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $upload_dir['url'] . '/' . basename( $image_file_name ),
'post_mime_type' => $filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($image_file_name)),
'post_content' => '',
'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment( $attachment, $image_file_name, $post_id );
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $image_file_name );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
set_post_thumbnail( $post_id, $attachment_id );
但是上面的代码给我以下错误
imagejpeg(http://wscdn.bbc.co.uk/worldservice/assets/images/2013/07/21/130721173402_egypts_new_foreign_minister_fahmy_304x171_reuters-150x150.jpg): failed to open stream: HTTP wrapper does not support writeable connections in C:\dev\wordpress\pterodactylus\wp-includes\class-wp-image-editor.php on line 334
经过进一步调查,看来错误是由
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $image_file_name );
而经过进一步的调查,对于文件wp_insert_attachment()
指出,The file MUST be on the uploads directory
在问候中$image_file_name
那么,如何下载图片并将其正确保存到我的帖子中?
非常感谢。