el problema esta en el for, es muy sencillo limitar el numero de páginas...
Código PHP:
Ver original<?php
//numero de páginas a mostrar incluyendo la página actual, 1 2 3 4 5* 6 7 8 9
//el 5* sería la página actual, es preferible usar números pares para que el numero
//de páginas tanto antes como después sea el mismo (en caso de que existan)
$limite = 8;
//código de tu paginador....
$div = ceil($limite / 2);
$pagInicio = ($pagActual > $div) ? ($pagActual - $div) : 1;
if ($totalPaginas > $div) {
$pagRestantes = $totalPaginas - $pagActual;
$pagFin = ($pagRestantes > $div) ? ($pagActual + $div) : $totalPaginas;
}else {
$pagFin = $totalPaginas;
}
for($i=$pagInicio; $i<=$pagFin; $i++) {
//código de paginación...
}