Ich versuche, programmgesteuert mehrere Bilder zur Medienbibliothek hinzuzufügen. Ich habe die Bilder hochgeladen und wp-content/uploads
versuche sie jetzt zu verwenden wp_insert_attachement
.
Hier ist der Code, der jedoch nicht wie erwartet funktioniert. Ich denke, Metadaten werden nicht ordnungsgemäß generiert. Ich kann die Dateien in der Medienbibliothek anzeigen, aber ohne Miniaturansicht. Auch wenn ich das Bild bearbeite, wird eine Fehlermeldung angezeigt, dass das Bild erneut hochgeladen werden soll .
$filename_array = array(
'article1.jpg',
'article2.jpg',
);
// The ID of the post this attachment is for.
$parent_post_id = 0;
// Get the path to the upload directory.
$wp_upload_dir = wp_upload_dir();
foreach ($filename_array as $filename) {
// Check the type of file. We'll use this as the 'post_mime_type'.
$filetype = wp_check_filetype( basename( $filename ), null );
// Prepare an array of post data for the attachment.
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $filetype['type'],
'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
'post_content' => '',
'post_status' => 'inherit'
);
// Insert the attachment.
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
// Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
require_once( ABSPATH . 'wp-admin/includes/image.php' );
// Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
}