Ваш код выводит записи отдельными (от основного) запросами, а пагинация для архива категории "Цены" строится на основном запросе (глобальный $wp_query). Поскольку основной запрос вы не меняли, то и пагинация у вас присутствует, что вполне естественно и правильно.
Если вам нужно на странице "Цены" (которая является архивом рубрики "Цены") вывести ВСЕ записи из этой рубрики, сгруппировав их по подкатегориям, то:
- Хукаетесь в экшн
pre_get_posts
(дока 1 и 2)
- Проверяете, чтобы это был главный запрос && в рубрике "Цены"
- Устанавливаете нужный параметр запроса: все посты, без пагинации (nopaging = true)
Таким образом, вы получите ВСЕ посты рубрики "Цены" в главном запросе, без пагинации. Выводить стандартным циклом. Беда только в том, что они никак не сгруппированы по дочерним категориям. Решается проверками в цикле.