When running the importer, you must check the checkbox to download and import all media/attachments, and the original server must be reachable from the server conducting the import.
If you fail to do this, the posts will have no valid featured image, and fail to show in your loop, and any attempt to call the_post_thumbnail
will fail giving the impression they have no featured image.
To fix this, delete your posts, and re-import using the correct settings, making sure the old server is still accessible at its original URL.
Also to demonstrate the point, you made no attempt to actually check the posts, always check e.g.:
if ( $query->have_posts() ) { // you never checked to see if no posts were found
while($query->have_posts()) { // alt style syntax doesn't work with most IDEs
// individual statement should be on individual line
$query->the_post();
// you only need open/close tags here, not every line, save yourself some time typing
?><h2><?php the_title(); ?></h2><?php
// only print out the thumbnail if it actually has one
if ( has_post_thumbnail() ) {
echo '<p>post says it has a featured image</p>'; // double checking
the_post_thumbnail('thumbnail');
} else {
echo '<p>this post does not have a featured image</p>';
}
}
} else {
echo '<p>no posts found</p>';
}
If you have not checked the checkbox, you will get images saying they have a featured image, but no image is shown
var_dump( $query )
?