Programación Web y SEO, Ingeniero Industrial

Problema con la paginación cuando se excluyen Categorías del Loop de WordPress

El Loop de WordPress es la parte del código que obtiene páginas o posts de nuestro blog, y consiste en un ciclo repetitivo mediante una función WHILE:

1
2
3
if (have_posts()) : while (have_posts()) : the_post();
endwhile;
endif;


Cuando realizamos el Loop de un query o consulta que filtre y obtenga determinadas categorías (por ejemplo, en este caso vamos a eliminar de la consulta a la categoría 3, introduciéndole un menos delante), he observado que si tenemos paginación de las entradas, ésta no se realiza correctamente.

Por ejemplo, a partir de la 10ª entrada se muestra el link a entradas anteriores, o si tenemos instalado el plugin de paginación WP-Navi, si clicamos sobre ver páginas anteriores o posteriores volvemos a obtener las mismas páginas que la primera vez. Éste es el código que no funciona con paginación:

1
2
3
4
query_posts("cat=-3");
if (have_posts()) : while (have_posts()) : the_post();
endwhile;
endif;

La solución es introducir una variable que diga a la consulta query en qué página de resultados nos encontramos, $paged. En éste caso para excluir de la consulta a la categoría 3, y obtener una paginación correcta:

1
2
3
4
5
6
7
8
if (is_home()) {
$paged = (get_query_var('paged'));
query_posts("cat=-3&paged=$paged");
}
if (have_posts()) : while (have_posts()) : the_post();
<!-- hacer o imprimir una página o post ... -->
endwhile;
endif;

Consultar:

2 respuestas a Problema con la paginación cuando se excluyen Categorías del Loop de WordPress

Página 1 de 11
Página 1 de 11

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Categorías del Blog
Comprueba dominios libres