The official code reference for get_the_post_thumbnail_url states:

$size (string|array) (Optional) Registered image size to retrieve the source for or a flat array of height and width dimensions.

(emphasis mine).

I'm using the following parameters:

$img_url = get_the_post_thumbnail_url(get_the_ID(), array('300' , '170'));

But it doesn't return the size I want.

The registered image sizes are 150 x 150, 300 x 300 and 1024 x 1024.

1 Answer 1


WordPress does not create any thumbnail on the fly. If you try to fetch a size that doesn't exist, either the closest size or the full size image will be retrieved.

The closest solution you can try is to fetch a size larger than what you want, and then size it down via CSS and crop it.

Let's say the registered sizes are 50 x 150, 300 x 300 and 1024 x 1024, but you need a 300x177 image. Fetch the 300x300 one, and then clip it using CSS:

#my-div img {
    position: absolute;
    clip: rect( 0px, 300px, 177px, 0px );

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.