You can use get_attached_file()
to:
Retrieve attached file path based on attachment ID.
And get_post_thumbnail_id()
to determine the post thumbnail of the current post, or any post if you set the $post_id
parameter. Exemplary usage:
$bytes = filesize(
get_attached_file(
get_post_thumbnail_id()
)
);
Use size_format()
to
Convert a given number of bytes into a human readable format
$hr_size = size_format( $bytes );
If you are actually want to get the size of one of the intermediate sizes, the above shows the file size of the full image, make use of image_get_intermediate_size()
, where:
The metadata ‘sizes’ is used for compatible sizes that can be used for the parameter $size value.
Which means it uses wp_get_attachment_metadata()
to get the data. In addition you need wp_upload_dir()
to construct the path. Exemplary usage:
$upload_dir = wp_upload_dir();
$metadata_size = image_get_intermediate_size(
get_post_thumbnail_id(),
'thumbnail'
);
$path_inter = $upload_dir[ 'basedir' ] . "https://wordpress.stackexchange.com/" . $metadata_size[ 'path' ];
$bytes = filesize(
$path_inter
);
$hr_size = size_format( $bytes );