So after checking your search.php
template, actually the issue is not with WordPress. Instead:
That the_post_thumbnail()
(as in if ( the_post_thumbnail() )
) echoes the post thumbnail and returns nothing which then bypasses your conditional (doesn’t echo your img
tag), so you should instead use has_post_thumbnail()
:
if ( has_post_thumbnail() ) {
// echo your img
}