Me gusta, yo hice una parecida en donde se puede especificar cómo serán las urls, también donde se especifica el orden de las noticias a mostrar, la cantidad, la tabla de donde se van a mostrar, etcétera...
<?php
class Paginador
{
/* Variables de paginador */
private $url;
private $pagina;
private $totalPaginas;
/* Variables de MySQL */
private $consulta;
private $inicio;
/* Establecer parámetros de la case */
function __construct($xCantidad, $xTabla, $xOrden, $xUrl)
{
$this->url = $xUrl;
$this->pagina = $_GET['pagina'];
if(!$this->pagina)
{
$this->inicio = 0;
$this->pagina = 1;
}
else
{
$this->inicio = ($this->pagina - 1) * $xCantidad;
}
$total = mysql_num_rows(mysql_query("SELECT * FROM ".$xTabla.""));
$this->totalPaginas = ceil($total / $xCantidad);
$this->consulta = mysql_query("SELECT * FROM ".$xTabla." ORDER BY id ".$xOrden." LIMIT ".$this->inicio.",".$xCantidad."");
}
/* Función para devolver el mysql_num_rows() */
function rows()
{
return mysql_num_rows($this->consulta);
}
/* Función para devolver el mysql_fetch_array() */
function fetch()
{
return mysql_fetch_array($this->consulta);
}
/* Función para la URL */
private function url($replace)
{
return str_replace("$1",$replace,$this->url);
}
/* Función para mostrar el paginador */
function mostrarPaginador()
{
if($this->totalPaginas > 1)
{
$siguiente = $this->pagina + 1;
$anterior = $this->pagina - 1;
if($this->pagina != 1)
{
echo $this->url($anterior)."«</a> ";
}
for($i = 1; $i <= $this->totalPaginas; $i++)
{
if($this->pagina == $i)
{
echo "<span style='font-size:14px; font-weight:bold'>".$this->pagina."</span> ";
}
else
{
echo $this->url($i).$i."</a> ";
}
}
if($this->pagina != $this->totalPaginas)
{
echo$this->url($siguiente)."»</a>";
}
}
}
}
?>
Así me ahorro la consulta a la base de datos y cuando quiero mostrar por ejemplo el sistema de noticias, lo llamo de la siguiente manera:
<?php
$noticias = new Paginador(5, "noticias", "DESC", "<a href='/pagina-$1'>");
if($noticias->rows())
{
while($row = $noticias->fetch())
{
// Muestro las noticias
}
}
?>Creo que eso es todo, cualquier comentario o duda me dicen

Saludos ^^