jeje pues si te funciona así, que asi sea.... en lo personal nunca he tenido que hacer un foreach para que funcione, el código que te di es totalmente funcional con un while... teniendo la misma estructura que se usa para los post del blog, incluso lo copie directamente de un proyecto que hice y lo utilice con custom taxonomies y custom post types.
tal vez lo que te haga falta es activar el debug para que te muestre los errores que produce