Realmente no es tan difícil, solo necesitas:
1- Definir cuántas noticias mostrarás por página
2- Contar el total de noticias para saber el número máximo de páginas
3- Detectar la página actual y limitar la consulta
4- Crear los enlaces para navegar entre páginas
Código PHP:
Ver original// Total de noticias por página, cámbialo de acuerdo a tu gusto/necesidad
$por_pag = 10;
// Variable para página actual
$pag_actual = 1;
// Variable para máximo de páginas
$pag_max = 1;
// Cuenta las noticias:
$consulta = 'SELECT COUNT(*) FROM noticias WHERE fecha = CONDICION';
// Calculas el total de páginas
$pag_pax = ceil($total_noticias / $por_pag);
// Buscas en $_GET la página a mostrar, si no existe, será la 1
if(isset($_GET['pag'])) { $pag_actual = (int) $_GET['pag']; // Forzamos a que sea un valor entero
// Verifica que la página esté dentro de los límites permitidos
if($pag_actual < 1) { $pag_actual = 1; }
if($pag_actual > $pag_mag) { $pag_actual = $pag_max; }
}
// Ya tienes la página actual, ahora hay que limitar la consulta
$inicio = ($pag_actual * $por_pag) - $por_pag;
// La parte del LIMIT es lo que "hace la magia" xD
$consulta = "SELECT * FROM noticias WHERE fecha = CONDICION ORDER BY fecha DESC LIMIT $inicio, $por_pag";
// Después de mostrar las noticias creas los enlaces de páginas:
for($i = 1 to $pag_max) {
echo "<a href=\"index.php?pag=$i\">$i</a>";
}
Por favor no copies y pegues el código, seguramente habrá errores de tecleo, cambios en nombres de variables, campos y funciones; analízalo, entiéndelo y aplícalo en tu proyecto.