Las funciones de etiqueta de plantilla dependen de variables globales para acceder a la publicación que se procesa y recuperar datos de ella o relacionados con ella.
La variable principal de ellos es la $postque contiene el objeto de publicación en sí. En su ejemplo no es explícito, pero lo que está sucediendo es que su ciclo asigna datos a $post, si el nombre para la iteración no fuera así $post, necesitaría hacerlo explícitamente ( global $post; $post = $some_other_post;).
Sin embargo, hay muchos otros globales y su propósito setup_postdata()es completarlos con datos. Si nos fijamos en la fuente, a saber, son:
global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
Tenga en cuenta que, en la mayoría de los casos, debería llamar wp_reset_postdata()después para devolver los globales a su estado original.