El Cofrecito
Tecnología y algo más
  • Inicio
  • Acerca de …

Solución al problema de paginación de query_posts en WordPress

febrero 12, 2009
Tech Tips, WordPress
260141 comentarioshttp%3A%2F%2Felcofrecito.net%2Fwordpress%2Fsolucion-al-problema-de-paginacion-de-query_posts-en-wordpress%2FSoluci%C3%B3n+al+problema+de+paginaci%C3%B3n+de+query_posts+en+WordPress2009-02-12+23%3A33%3A49Felipehttp%3A%2F%2Felcofrecito.net%2F%3Fp%3D2601
Agregar a delicious

Si utilizan la función query_posts() en WordPress para obtener los posts que quieren mostrar en un página seguramente habrán notado (o no) que la páginación no funciona correctamente.

Por ejemplo si queremos mostrar todas las entradas excepto las de la categoría 45, nuestro código sería el siguiente:

< ?php
  if (is_home()) {
    query_posts("cat=-45");
  }
?>

Si este código lo usamos para mostrar las entradas de la página principal, la paginación no funcionará. Para solucionar este problema simplemente debemos agregar el parámetro paged en la llamada a query_posts():

< ?php
  if (is_home()) {
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts("cat=-45&paged=$paged");
  }
?>

El problema se debe a que query_posts() sobreescribe el valor del offset de página, es decir que WordPress ya no sabe en que página se encuentra. Para ello debemos volver a saber en que página nos encontramos, y eso lo hacemos a través del parámetro “paged”. Así, la llamada a get_query_var(‘paged’) nos devolverá 1 si estamos en la primer página o caso contrario el valor del atributo paged. Finalmente le decimos a query_posts() en que página estamos agregando el parámetro &paged=$paged.

Suerte!

Etiquetas: blogs, CMS, paginación, query_posts, WordPress

Entradas relacionadas

  • WordPress: cómo retrasar el envío de los posts al Feed RSS
  • Ya se puede probar Wordpress 2.6 online
  • Blogs que leí en vacaciones
  • Cobertura del WordCamp San Francisco 2009

Si te gustó el post, podés dejar tu comentario o suscribirte al feed para recibir los últimos artículos en tu email.

Comentarios
Comment por semilla el febrero 26, 2009 @ 6:08 am

Me encantan estos comentarios que hablan al pedo. Si no te funcionó es una lastima, te invito a leer estas tres páginas donde dan la misma solución. Template Tags/query posts, foro wordpress y query_posts Pagination problem

Comment por semilla el febrero 26, 2009 @ 6:09 am

Me encantan estos comentarios que hablan al pedo. Si no te funcionó a vos no significa que esté mal. Te invito a leer estas tres páginas donde dan la misma solución que la planteada por mí, inclusive una es la doc oficial de WP. Template Tags/query posts, foro wordpress y query_posts Pagination problem

Comment por fondos Gratis el febrero 26, 2009 @ 3:32 am

la verdad lo probe y no soluciona nada, debes atender mas a la hora de hablar de algo sino lo sabes bien

Comment por Kike Gavilan el marzo 8, 2009 @ 1:40 am

Pues a mi me funcionó, solo necesitaba excluir una categoría y saber si estaba en la pagina 1 o no
Un saludo desde la Mixteca

Comment por semilla el marzo 8, 2009 @ 3:06 am

Que bueno que te sirvió. Saludos

Comment por Julian el abril 24, 2009 @ 1:32 am

Aún no me funcionó pero seguramente le esté errando a algo.

La verdad que el comentario del amigo "fondos gratis" que nisiquiera da nombre, lamentable. Te recomiendo que le borres el link porque estás "promocionándole" gratis su sitio de mierda.

Saludos y gracias por el artículo.

Comment por semilla el abril 24, 2009 @ 5:31 am

Con gusto te ayudo para solucionar tu problema. Gracias por tu comentario.

Comment por tad el junio 4, 2009 @ 2:44 am

Hola Felipe, use este codigo durante un tiempo, pero ahora me he dado cuenta que los post de la categoria que se quiere omitir del home, tan solo no desaparecen del mismo, sino tambien de las paginas subsiguientes, o sea las previas. Si bien es cierto se puede llegar a esos post por medio de la categoria, creo que este codigo esta a medias, no se si alguien ya reparo en eso.

En todo caso como hack rapido ayuda mucho.

Comment por semilla el junio 4, 2009 @ 6:17 am

Claro que van a desaparecer de las demás páginas, si el script de la página principal (index.php) en WordPress es el mismo para todas. Lo que podrías hacer es preguntar si estás en la primer página filtrar los posts de esa categoría, caso contrario mostrá todo. Podés probar con la función is_page(\\'1\\'). Se entiende?

Comment por Mauricio el junio 9, 2009 @ 2:07 pm

A mí me anduvo joya.

<?php if (have_posts()) : ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("category_name=album&paged=$paged"); ?>
<?php while (have_posts()) : the_post(); ?>
<div class="album">
<div class="top"><small><?php the_time('d F Y'); ?></small></div>
<div class="content"><h1>">
<?php the_title(); ?>
</h1>
<?php the_content(); ?></div>
<div class="comm"><?php comments_popup_link('Sin comentarios &#187;', '1 comentario &#187;', '% comentarios &#187;'); ?></div>
<div class="bottom"></div></div>
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php else : ?>
<h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.
<?php endif; ?>

Lo único que necesitaría que se muestren 5 post por página y como soy medio nabo con esto no consigo hacerlo, pero después, una barbaridá

Comment por Mauricio el junio 9, 2009 @ 2:11 pm

Bah, era una tontera:

query_posts("category_name=albunes&paged=$paged&showposts=4"); ?>

muestra 4 post, que era lo que quería

Comment por Illi.Pro el junio 12, 2009 @ 2:36 am

Gracias por esta maravillosa solución! lo buscaba como loco!

Comment por vitoco el junio 18, 2009 @ 10:13 pm

saludos, yo tengo esto y no me funciona, me muestra todos los post:

query_posts("cat=-3,-29,-33,-16,-15,-1&paged=$page&posts_per_page=3"); ?>

q será???

Comment por Sugarnines el septiembre 1, 2009 @ 6:52 pm

Buena solución al problema. Funciona. Thanks

Comment por evelio el septiembre 8, 2009 @ 4:43 am

a mi criterio te falta la "d" en la variable $paged

query_posts("cat=-3,-29,-33,-16,-15,-1&paged=$paged&posts_per_page=3"); ?>

Comment por daniel el octubre 24, 2009 @ 11:58 pm

Gracias, probando a ver si funciona :)

Comment por Cheche el noviembre 5, 2009 @ 2:56 am

Felipe mi tema no vino con paginación como haria para programar la paginación?

Si me explico un poco mejor mi tema no vino con el famoso entradas anteriores y entradas siguientes.

Instale el wp-paginavi, y si me muestra la figurita para dar clicks en las paginas que quiero, pero por ejemplo doy click en la pagina 4 y me vuelve a mostrar la pagina uno, pero en la barra de direcciones dice que esta en lapagina 4, pero no lo esta, probe con otro tema y ahi si funciona bien, el problema es el tema que no vino programado la paginacion.

Espero me puedas ayudar.
Para que vean como es el problema entren a mi blog y prueben ir a otra pagina y veran que no funciona :(

Pingback por Ayuda con paginacion el noviembre 30, 2009 @ 8:33 pm

[...] [...]

Comment por David el enero 30, 2010 @ 5:27 am

Me ha ido perfecto, muchas gracias!!!

Pingback por Linux-OS » El Loop de Wordpress en acción el marzo 9, 2010 @ 10:42 pm

[...] aquí, aquí, aquí, aquí, aquí, aquí, y [...]

Comment por FerWeb el marzo 25, 2010 @ 11:04 pm

excelente man, estuve dos horas buscando por todo google y aqui encontre la respuesta, funciona de maravilla, gracias!!

Comment por Felipe el marzo 25, 2010 @ 10:14 pm

De nada, un placer!

Comment por Daniel el marzo 29, 2010 @ 9:50 pm

Funciona de maravilla, gracias por el tip

Comment por Mario el abril 20, 2010 @ 1:43 pm

Muchas gracias por tu explicacion, ha solucionado mi problema =)

Saludos.

Comment por Nando el mayo 4, 2010 @ 11:39 am

he probado esta solucion de varias formas, no solo como se plantea aqui, pero sencillamente no resuelve el problema. El uso de $paged en este caso, es para no perder el numero de pagina, pero a pesar de la "correcta" paginacion sigue mostrando los mismos datos, es decir no cambia los datos obtenidos de la consulta SQL…lamentablemente no me ha funcionado y no logro dar con la solucion

Comment por Blogfoon.com el mayo 30, 2010 @ 8:31 pm

Hola Cheche: veo que encontraste una solución a tu problema de paginacion. Te comento que en mi theme tampoco vino nada para que funcione el PAGENAVI y tengo el mismo problema que vos. ¿Me podrías decir como lo solucionaste?
Gracias

Comment por alvaro el junio 22, 2010 @ 8:34 am

Lo andaba buscando, gracias!

Comment por Perla Simeone el julio 15, 2010 @ 7:01 pm

Vaya tio que buena…por fin!!! después de haber dado miles de cabezasos te he encontrado con la solución en la mano…!!!!

Y pensar a los miles de archivos, lineas de codigos que cambié, y ahora veo que es sólo una p#t@ linea….te agradezco por la ayuda porqué una info tan directa al problema no la habia econtrada…!!

Comment por gabriela el julio 18, 2010 @ 2:18 am

gracias!!!!!!!!

Comment por nonaoco el agosto 20, 2010 @ 1:08 am

Hola, fijate que inserte el codigo que tu expones aqui, modificando las IDS que deseo excluir las cuales son 3 y 4 y resulta que no pasa nada al actualizar el archivo del tema.

Te dejo mi index original por si me deseas ayudar, las ID´s que quiero excluir son las 3 y 4.

Aqui pegue el codigo PHP del index en copypastecode http://www.copypastecode.com/36526/

Gracas por su ayuda!

Pingback por Query_posts vs Paginacion en WordPressURIELMANIA | URIELMANIA el enero 27, 2011 @ 2:17 am

[...] en el, pero para mi desgracia, la paginacion no funcionaba, lo bueno fue que me encontre un post en http://elcofrecito.net, el cual me ilustro por que no [...]

Comment por Fco el marzo 18, 2011 @ 4:59 pm

Nando tengo el mismo problema has encontrado la solucion?

Comment por Punk Hernandez el abril 26, 2011 @ 3:35 pm

Muchas Gracias!! funciona de maravilla el codigo!!

Comment por Susan el junio 7, 2011 @ 3:46 am

Te adoro por esto… luché con este problema mucho rato !!!!!!

Comment por Raul B Glück el septiembre 7, 2011 @ 11:06 am

Muchas gracias! Perfecta solución de algo que me estaba volviendo loco…

Comment por Francisco el septiembre 13, 2011 @ 12:32 pm

yo también con el mismo problema, alguien tiene algún tipo de solución para esto

Comment por Abstracto Energúmeno el diciembre 7, 2011 @ 3:00 pm

Me encanta la gente agradecida, com fondos Gratis, que no sólo no tiene NPI si no que critica el buen trabajo de la página.

Comment por pelaes el enero 24, 2012 @ 5:14 am

muchas gracias, estuve 2 noches sin poder lograrlo.
menos mal que di con esta solucion
se agradece un monton !!!

Comment por Martin el abril 6, 2012 @ 12:40 pm

genial

me funcionó perfectamente,

gracias

Comment por Miguel de Málaga el abril 13, 2012 @ 6:38 am

Gracias por compartir :)

Comment por Gabriela Pérez Caviglia el junio 25, 2012 @ 7:23 am

Muchas gracias Felipe! Me sirvió mucho tu solución!!!! :)

Comentarios cerrados

Lee "El Cofrecito" desde tu lector RSS favorito

Suscribite

 

Recibe los artículos en tu email

Buscar artículos

Ultimas entradas

  • En San Francisco para cubrir el Google I/O 2011
  • Android Bootcamp Santa Fe GTUG
  • Cómo actualizar el Nexus One a Android 2.3.3
  • Diagrama de Flujo de la Procastinación
  • “Bring The Light”, primer tema de difusión de Beady Eye
  • Máscara de V for Vendetta para imprimir en tamaño real
  • Google celebra los 70 años de John Lennon con un Video Doddle
  • Recorriendo París en 2 minutos con Google Street View [video]
  • Cronología del derrame de petróleo de BP en el Golfo de México
  • Java 4-ever: la pesadilla de los desarrolladores .Net

Ultimos comentarios

Populares

3G Android aniversario apple campo celulares Coldplay concurso Dell dinero disco diseño elecciones estadisticas eventos Firefox Firefox 3 Geek Google Google IO Humor iconos iPhone Java JavaScript linux Lost Lost 6 temporada Mac microblogging microsoft Música Oasis Películas publicidad Redes Sociales rss star wars Twitter Videos wallpapers web 2.0 windows Windows Vista WordPress
  • Categorías

    • Actualidad
    • Adsense
    • Ajax
    • Autos
    • celulares
    • Ciencia
    • CSS
    • Deportes
    • Diseño Web
    • Ecología
    • Economía
    • emprendimientos
    • Firefox
    • frases
    • futbol
    • Gadgets
    • Geek
    • General
    • hardware
    • Humor
    • Imágenes
    • informática
    • Internet
    • Java
    • JavaScript
    • Móviles
    • Música
    • My News
    • Películas
    • Personal
    • Política
    • Programación
    • Rally Mundial
    • Redes Sociales
    • SEO
    • Software
    • Tech Tips
    • Tecnología
    • Televisión
    • Tenis
    • viajes
    • Video Games
    • Videos
    • windows
    • WordPress
  • Archivo

    • mayo 2011
    • abril 2011
    • febrero 2011
    • noviembre 2010
    • octubre 2010
    • agosto 2010
    • junio 2010
    • mayo 2010
    • abril 2010
    • marzo 2010
    • febrero 2010
    • diciembre 2009
    • octubre 2009
    • agosto 2009
    • julio 2009
    • junio 2009
    • mayo 2009
    • abril 2009
    • marzo 2009
    • febrero 2009
    • enero 2009
    • diciembre 2008
    • noviembre 2008
    • octubre 2008
    • septiembre 2008
    • agosto 2008
    • julio 2008
    • junio 2008
    • mayo 2008
    • abril 2008
    • marzo 2008
    • febrero 2008
    • enero 2008
  • Blogroll

    • Hora en Mexico
    • Hora exacta en Buenos Aires
    • Materia Geek

Creado con Wordpress | WP Premium theme por WP Remix
Traducido al español por Feli
Copyright 2007. El Cofrecito. Todos los derechos reservados

  • Responsabilidad Legal y Política de Privacidad