Moving here so comments don’t turn into a mess.
Basically there are two things that can go wrong here:
-
Fetching of posts. Check that
$thumbnails
gets correct post and only one. I am not sure if that is the issue, butget_posts()
docs listnumberposts
argument instead ofposts_per_page
that is listed forquery_posts()
. That might make a difference. -
Messing with global variables. For this usage I wouldn’t touch global
$post
at all, directly or withsetup_postdata()
either. Just use non-loop versions of functions that can fetch things you need by post id –get_permalink()
andget_the_post_thumbnail()
.