Estoy escribiendo un tema / complemento personalizado en el que necesito descargar imágenes mediante programación desde ciertas páginas web a la carpeta de carga y luego insertarlas como parte de la publicación.
Entonces, pude encontrar la url de la imagen mediante programación, y luego necesito guardarla en la carpeta de carga en wp-content, sin embargo, esa carpeta tiene una estructura de carpeta específica de WordPress dentro de ella para las imágenes guardadas.
Ahora mi pregunta es, ¿hay una API o función o método de WordPress que me permita descargar imágenes de la web y guardarlas en la carpeta de cargas? Y si es así, qué es.
De lo contrario, ¿qué debo hacer para guardar esas imágenes?
Hasta ahora, estoy haciendo esto
$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 );
Pero el código anterior me está dando el siguiente error
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
Y después de una investigación más profunda, parece que el error es causado por
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $image_file_name );
Y después de una investigación más profunda, la documentación para los wp_insert_attachment()
estados que The file MUST be on the uploads directory
en lo que respecta a la$image_file_name
Entonces, ¿cómo descargo una imagen y la guardo en mi publicación correctamente?
Muchas gracias.