Thumbnails in WordPress can be generated by using wp_generate_attachment_metadata()
, this function fires a filter after generating all the thumbnails wp_generate_attachment_metadata
and the filter provides $metadata
and $attachment_id
to the hooked functions.
You can hook your custom function to this filter.
$metadata
: Attachment metadata.
What you need is $metadata['sizes']['<size-name>']
, the <size-name>
is the name of thumbnail size added by add_image_size()
or the default ones.
e.g.
$metadata[sizes] => Array
(
[thumbnail] => Array
(
[file] => example_image-150x150.jpg
[width] => 150
[height] => 150
[mime-type] => image/jpeg
)
[medium] => Array
(
[file] => example_image-4-300x194.jpg
[width] => 300
[height] => 194
[mime-type] => image/jpeg
)
[mysize] => Array
(
[file] => example_image-4-400x400.jpg
[width] => 400
[height] => 400
[mime-type] => image/jpeg
)
)
from here you can know which sizes exist for the certain attachment, and only upload those sizes/thumbnails.
To get those thumbnails use a function like wp_get_attachment_image_src($id, $size_name)
to retrieve the thumbnail urls.
(Optional) : Install the Force Regenerate Thumbnails plugin to rerun the wp_generate_attachment_metadata()
for previously uploaded images too.