Hace ya mucho tiempo, hablamos de las maravillas que se podían hacer con query_posts()
. Esta función, nos permite personalizar los posts que queremos que aparezcan, para ello disponemos de una buena batería de parámetros con los que podemos personalizar la query que nos obtiene de la base de datos.
Los que hemos lidiado con ella, somos conscientes del problema que tiene dicho método con la paginación ya que esta función es aplicada siempre y repite una y otra vez los resultados de la primera petición.
Para solventar dicho problema debemos recurrir a una condición para que nos informe de en que página nos encontramos, y así condicionar, más aún, nuestra query_posts()
;
query_posts() sin paginación
<?php if (have_posts()) : ?>
<?php query_posts("category_name=somecat"); ?>
<?php while (have_posts()) : the_post(); ?>
Este ejemplo, muestra el método sencillo de usar esta función, mediante query_posts()
condicionaremos la petición para que nos devuelva los posts de la categoría cuyo nombre sea «somecat
«.
query_posts(); con paginación
<?php if (have_posts()) : ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("category_name=somecat&paged=$paged"); ?>
<?php while (have_posts()) : the_post(); ?>
Como podemos ver en negrita, la única modificación es que añadimos la paginación por defecto a nuestra query, comprobando con get_query_var()
la existencia de la variable paged
, seleccionamos la página en la que se encuentra la query y en caso de no existir, informaremos que nos encontramos en la página 1, mostrando los primeros resultados.
20 comentarios, 3 referencias
+
#