Ich schreibe ein benutzerdefiniertes Thema / Plugin, in dem ich Bilder programmgesteuert von bestimmten Webseiten in den Upload-Ordner herunterladen und sie dann als Teil des Beitrags einfügen muss.
So konnte ich die Bild-URLs programmgesteuert finden und sie dann im Upload-Ordner unter wp-content speichern. Dieser Ordner enthält jedoch eine bestimmte WordPress-Ordnerstruktur für die gespeicherten Bilder.
Meine Frage ist nun, gibt es eine WordPress-API oder -Funktion oder -Methode, mit der ich Bilder aus dem Internet herunterladen und im Upload-Ordner speichern kann? Und wenn ja, was ist das?
Was soll ich sonst tun, um diese Bilder zu speichern?
Bisher mache ich das
$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 );
Aber der obige Code gibt mir den folgenden Fehler
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
Und nach weiteren Untersuchungen sieht es so aus, als ob der Fehler durch verursacht wird
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $image_file_name );
Und nach noch weiteren Untersuchungen heißt es in der Dokumentation für wp_insert_attachment()
, dass The file MUST be on the uploads directory
in Bezug auf die$image_file_name
Wie lade ich ein Bild herunter und speichere es korrekt in meinem Beitrag?
Vielen Dank.