Claro, estás cortando el ciclo cuando muestras el enlace a la página actual en lugar de establecer el inicio y final con variables.
Código PHP:
Ver original<?php
// Total de enlaces a mostrar
$mostrar = 20;
// Calcular el inicio:
$inicio = $_GET['page'] - round($mostrar / 2); if($inicio < 1) {
$inicio = 1;
}
// Calcular final
$fin = $inicio + $mostrar;
if($fin > $page) {
$fin = $page; // Creo que en $page es donde tienes el máximo de páginas
$inicio = $fin - $mostrar;
}
if($_GET['page'] > 1) {
// Aquí pones enlace a primera página y anterior
}
if($inicio > 1) {
// Aquí pones los puntos suspensivos del principio
}
for($i = $inicio; $i <= $fin; $i++) {
// Aquí van los enlaces normales
}
if($fin < $page) {
// Puntos suspensivos del final
}
if($_GET['page'] < $page) {
// Enlace a página siguiente y final
}