Eu posso estar errado, mas pelo que estou vendo, "setup_postdata ()" deve ser usado ao fazer uma consulta de seleção personalizada (não apenas query_posts): enlace
Além disso, se você quiser usar tags como "the_title ()" e "the_permalink ()" com essa consulta de seleção personalizada ... você precisará usar o nome da variável $ post especificamente (não outro nome de variável) em setup_postdata () - TÃO BEM - você deve chamar global $ post antes do seu loop "foreach" ...
Então, basicamente, siga esse exemplo nesse link do códice. E não altere o nome da variável $ post - caso contrário, ela é quebrada.
HTH