WordPress – query 5 posts with a specific post in top

You can do this by using get_adjacent_post() and the filter get_previous_post_where or get_next_post_where. You’ll call get_adjacent_post() as normal, but you’ll need to change the LIMIT to 5, using the filter.

I wasn’t sure from the question whether or not you wanted to have the current post be first. If you do, you’ll need to set the LIMIT to 4 and then use the current postdata to generate the first post.

I would create an array of post ids, and then use get_post() when you iterate through them, as I believe that get_adjacent_post() will return raw rows from the database.