As funções de tag de modelo dependem de variáveis globais para acessar a postagem sendo processada e recuperar dados a partir dela ou relacionados a ela.
A principal variável deles é a $post
que contém o próprio objeto post. No seu exemplo, não é explícito, mas o que está acontecendo é que seu loop atribui dados $post
, se o nome da iteração não fosse, $post
você precisaria fazer isso explicitamente ( global $post; $post = $some_other_post;
).
No entanto, existem muitas outras globais e o objetivo setup_postdata()
é preenchê-las com dados. Se você olhar para a fonte, eles são:
global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
Observe que, na maioria dos casos, você deve ligar wp_reset_postdata()
posteriormente para retornar os globais ao seu estado original.