wp_reset_query()
will reset the query to the original query WordPress did on this page. So if you somewhere called query_posts()
, it will not reset back to that query, but to the “main” query.
You probably want to use wp_reset_postdata()
, which resets the $post
variable to the current post in $wp_query
.
The best thing is to not overwrite the global $post
variable in your function. All WordPress functions have variants that accept a post object, so there should be no need to use the global variable there.