Múltiples Artículos en nuestro índice: loop principal y secundario

Una de las más fáciles técnicas para crear varios Loops en el índice de nuestro Blog (y diseñar así distintamente para un grupo de posts primero, los “recomendados”, y para otro grupo después), es con el siguiente código :

<div class="principal">
<?php
query_posts('showposts=8');
$ids = array();
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_title();
the_content();
endwhile;
?>
</div>

Estamos convocando aquí a los 8 últimos posts, sin distinguir nada más, pero, dentro del paréntesis, podemos usar también category_name=nombre-de-la-categoría o aún cat=catID, donde catID es un número (el número que se le asignará a la categoría en nuestra base de datos), seguido por el signo ‘&’.

query_posts('category_name=cine&showposts=8');

Más abajo en nuestro índice, supongamos que queremos crear una simple lista, menos trabajada estéticamente que ése hipotético primer loop, y queremos, a su vez, evitar que se nos duplique el contenido. Ahí vamos :

<div class="secundario">
<?php
query_posts(array('post__not_in' => $ids));
while (have_posts()) : the_post();
the_title();
the_content();
endwhile;
?>
</div>

Debido a que ‘query_posts’ es una de las mejores formas para acceder selectivamente a nuestra base de datos, lo usaremos tanto en el primer loop como en el segundo, especificando en éste último que nos excluya los posts que desplegamos en primer lugar, en base a su ID (numérica, pedida en el primer loop … y almacenada para su uso).

No dudéis en dirigir vuestras dudas para todo esclarecimiento.

Comentarios
  1. Juan Pablo

    Hola, No me funciona tu script, mi template se va a blanco.. estas seguro que esta bien?..

    Escrito el01/09/2009
  2. Juan Pablo

    Osea, lo que hago es formatearlo con mi diseño, entonces cuando cierro el codigo al final me toma como texto el endwhile;?> Y justo que necesitaba 2 loop en mi index..

    Escrito el01/09/2009
  3. Juan Pablo

    Retiro lo dicho.. si funciona, soy un estupido…

    Escrito el01/09/2009
    • Golpemaestro

      Hola,

      Yo pienso que decir “soy un estúpido” es una estupidez…
      Más bien, te diste cuenta de tu enfoque errado y cambiaste, para mejorar…
      Los estúpidos verdaderos, aunque sospechan, no quieren ver esta realidad…

      ¿Entiendes?

      Si te jubilas a los 65 años (o quizás más en el futuro)…
      Es que estas palabras se las dije a la persona equivocada.

      Suerte!
      Golpemaestro

      Escrito el09/04/2013
  4. Ignacio

    Saludos Juan Pablo, en el post escribí todos los tags de WP bajo una misma declaración de php, seguro que fue eso, que lo hace incómodo para un copiar-pegar rápido. Voy a cambiarlo en cuanto pueda. Gracias por pasarte!

    Escrito el01/09/2009
  5. Hola que tal saludos!

    Estoy trabajando en un sitio media para un sitio en el cual coloco los ultimos audios, videos y mas descargados en el header, y los posts de las categorias en el index, y todo funciona bien, pero a la hora de querer ver las entradas en single.php se confunde con los posts de los ultimos audio y videos y me manda todos.

    Intente con tu codigo y nada, que podria ser??

    Escrito el15/06/2010
  6. buko

    Hola, muy buenas.
    Soy un poco nuevo en esto del codigo PHP y
    estoy intentando personalizar una plantilla.
    En la plantilla de la pagina principal tengo un código que me saca los últimos posts y quiero antes de eso, hacer que salga solo un post de una determinada categoría (con otro estilo), que llevaría un embed de Vimeo. Quiero hacer que salga todo el contenido de dicho post, y he probado con query_post, pero no consigo nada.
    Alguien, me podría ayudar?
    El código que tengo para mostrar los últimos posts es este:

    <div class="span-8 post- last”>
    array( ‘thumbnail’ ), ‘default_size’ =>
    ‘thumbnail’, ‘width’ => ‘310’, ‘height’ => ‘150’ ) ); ?>
    <a href="” rel=”bookmark”
    title=”Permanent Link to “>

    Espero que alguien sepa como hacerlo, le estaré muy agradecido! :)
    Gracias!

    Escrito el15/08/2010
  7. Javi A.

    He leído varias veces este artículo pero no acabo de ver la forma de implementar dichos loops en mi página principal.

    Uf !

    Escrito el14/01/2011

DEJA TU COMENTARIO