Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Paginación rota si uso query_posts();

Estas en el tema de Paginación rota si uso query_posts(); en el foro de WordPress en Foros del Web. Hola, como dije en el título, estoy haciendo un sitio con wp, y uso varios loops, cada uno llama a una categoría diferente. La paginación ...
  #1 (permalink)  
Antiguo 03/02/2009, 16:43
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Paginación rota si uso query_posts();

Hola, como dije en el título, estoy haciendo un sitio con wp, y uso varios loops, cada uno llama a una categoría diferente.

La paginación no sirve, si quito el query_posts() de todos los loops si funciona, pero no es la idea.

Alguien sabe por que?

Ejemplo de un loop

Código PHP:
      <div id="articulos">
          <h3 class="art-recientes">Art&iacute;culos recientes</h3>
        <?php query_posts('category_name=articulos'); ?>
        <?php while(have_posts()): the_post(); ?>
          <div id="Post-<?php the_ID(); ?>" class="articulos">
            <h4 class="titular-secundario"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(('Link permanente a %s'), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a></h4>
            <?php the_content('Leer mas &raquo;'?>
          </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>

      </div> <!-- ARTICULOS    -->
Gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #2 (permalink)  
Antiguo 03/02/2009, 17:16
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: Paginación rota si uso query_posts();

Si vas a tener varios loops lo mejor es que uses get_posts, ya que cada loop va encerrado en un foreach y todos fueron felices para siempre. En cambio Query_posts afecta a toda la página. No obstante tiene su buena utilidad si quieres delimitar tus posts a cierta categoría padre. Siempre hay que buscar la opción que nos ofrezca los mismos resultados con menor esfuerzo para el servidor.

Por otra parte tu código tiene un error. Debería ser:

Código PHP:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
y al final:

Código PHP:
<?php endwhile; else: ?>

// El comentario cuando el post no se encuentra disponible.

<?php endif; ?>
Este loop en especial úsalo sólo en la parte que quieres paginar. Para los demás (por ejemplo columnas) usa get_posts.
  #3 (permalink)  
Antiguo 03/02/2009, 17:28
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Paginación rota si uso query_posts();

Hola Meta, gracias por el dato, no conocía get_posts. Voy a revisar la estructura del sitio a ver donde conviene ponerlo.

Con respecto a los posts que van paginados el problema es muy común y no lo había encontrado, lo resolví así por si a alguien se le ofrece.

Código PHP:
      <div id="articulos">
          <h3 class="art-recientes">Art&iacute;culos recientes</h3>
    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1?> //Aqui estaba el meollo del asunto        
        <?php query_posts("category_name=articulos&paged=$paged"); ?>

        <?php if(have_posts()): while(have_posts()): the_post(); ?>
          <div id="Post-<?php the_ID(); ?>" class="articulos">
            <h4 class="titular-secundario"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(('Link permanente a %s'), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a></h4>
            <?php the_content('Leer mas &raquo;'?>
          </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: ?>    

        //Aordarme de poner un comentario si el post no esta disponible (gracias Meta)

    <?php endif; ?> 
      </div> <!-- ARTICULOS    -->
La solución la encontré aquí
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 11/03/2010, 06:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 25
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Paginación rota si uso query_posts();

Cuando pongo ese código me duplica los posts, me salen dos veces el mismo, esto es porque ya automáticamente query_posts genera una impresión por pantalla de los posts según he comprobado y dentro del bucle le estamos diciendo que lo imprima otra vez.

Por lo menos a mí me pasa, con query_posts sin nada ya lo imprime y funciona la paginación, el problema es que me lo imprime con el html que le da la gana y me gustaría hacer lo que se hace en el bucle pero sin duplicación.

Con wp_query lo he intentado pero la paginación no funciona.

Me echáis una mano?
  #5 (permalink)  
Antiguo 24/03/2010, 16:54
olb
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Paginación rota si uso query_posts();

Apollo, quizá encuentres solución en este enlace:
[URL="http://www.anieto2k.com/2008/08/13/query_posts-y-el-problema-de-la-paginacion/"]http://www.anieto2k.com/2008/08/13/query_posts-y-el-problema-de-la-paginacion/[/URL]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:24.