query_posts()
should not be used, look intopre_get_posts
hook.- Whatever you do inside
index.php
template does not influence inside ofsingle.php
template. Two different top level templates aren’t (normally) loaded at the same time. - You are explicitly requesting
next_post_link()
to limit next post to the same category via third argument, are you sure that’s not your issue?