Не знаю, почему, но предложенные методы не сработали для меня, мне пришлось прибегнуть к следующему
$loop_counter = 1;
while( $query->have_posts() )
{
//Do your thing $query->the_post(); etc
$loop_counter++;
}
Безопаснее, чем играть с глобалами, если вы спросите меня.