wp_generate_attachment_metadata filter needs attachment ID
|Reported by:||taco1991||Owned by:|
The wp_generate_attachment_metadata filter (/wp-admin/includes/image.php line 124) passes only the metadata array to any functions using that hook:
return apply_filters( 'wp_generate_attachment_metadata', $metadata );
The filter is useless without the attachment ID of the new item. And for anything that's not an image, $metadata is empty so you have no idea what the new attachment is.
Instead it should be just like the wp_update_attachment_metadata filter and include the attachment ID as a second argument (/wp-includes/post.php line 2668):
$data = apply_filters( 'wp_update_attachment_metadata', $data, $post->ID );
I stumbled on this as I was writing a plugin to handle new attachments. The easiest and best way to add extra metadata at create time is to use the wp_generate_attachment_metadata hook. But without the ID, I don't know which file to update.
Simply adding the post ID to the function would make this filter awesome. I'm having trouble making a patch, but here's the new code for /wp-admin/includes/image.php line 124:
return apply_filters( 'wp_generate_attachment_metadata', $metadata, $attachment_id );