Cuando en WordPress nos interesa tener varios loops en una página (por ejemplo, para mostrar varias columnas, una por categoría), una de las más fáciles maneras de conseguirlo es con get_posts:
<?php
$posts = get_posts('category=vinos-blancos&numberposts=1');
foreach($posts as $post):
setup_postdata($post);
?>
<?php the_title(); ?>
<?php the_content(); ?>
<?php endforeach; ?>
En este ejemplo, estamos convocando a un artículo (numberposts=1), el último artículo que hayamos escrito de hecho, dentro de la categoría "Vinos Blancos".
Sucesivamente, en cada columna de nuestro index.php donde quisiéramos que ello ocurriera podríamos cambiar la categoría por una nueva, y disponer así de cuatro o cinco columnas por categoría (siguiendo el ejemplo: vinos blancos, vinos tintos, vinos rosados, champagne, licores…).
Si quisiéramos, sin embargo, disponer además de las etiquetas; por ejemplo, "afrutado", "seco", "fuerte", deberemos realizar un añadido especial en nuestro loop:
<?php
$posts = get_posts('category=4&numberposts=1');
foreach($posts as $post):
setup_postdata($post);
?>
<?php the_title(); ?>
<?php the_content(); ?>
<?php $posttags = get_the_tags($post->ID); if ($posttags) {
foreach($posttags as $tag) {
echo '<a href="';
echo get_tag_link($tag);
echo '">';
echo $tag->name . ' ';
echo '</a>';
}
}
?>
<?php endforeach; ?>
Como get_posts es un tipo de loop más sencillo que el normal de WordPress, necesitaremos especificar la ID numérica de cada post ($post->ID) para que WordPress nos dé, además de título y contenido, las etiquetas correspondientes enlazadas a sus archivos de etiqueta como en este caso.
Esperamos que este truco os sea útil y vuestros comentarios.



19 comentarios
01/03/2010
Mmmmm…algo estoy haciendo mail o algo entendi mal.
Segun interpreto, con este tutorial puedo lograr que mis noticias o contenido de las categorias salgan en forma de columnas, es decir una al lado de la otra,,,es asi?
Pues lo segui al pie de la ltra y no me funciona, duplique el loop y cambie la gategoria para cada uno, me gustaria me funcione me pueden dar una mano.
Mil gracias de sde Colombia
Link de prueba: http://www.cootransurb.org/admin/
01/03/2010
Hola Luchosar, gracias por apuntarlo, tengo que rectificar mi código : en vez de category, inténtalo con category_name, o bién, si dejas category, en vez de poner el nombre de la categoría pon su ID numérica (la encontrarás sobrevolando con el cursor las categorías en la administración, y fijándote en la url a la que apuntan).
Vamos, que he mezclado category_name=nombre-de-la-categoria con category=8. Ambas cosas son posibles. Saludos !
01/03/2010
Hola Ignacio gracias por responder.
Efectivamente lo he puesto desde el princio con la ID asi: $posts = get_posts(‘category=5&numberposts=1′);
01/03/2010
Nada…tambien la coloque con el nombre de la categoria pero no me funciona: $posts = get_posts(‘category_name=noticia-2&numberposts=1′);
01/03/2010
Mmm, y si lo pruebas con :
cat=5
Te da algún mensaje o te sale en blanco ?
A veces también, get_posts interfiere con el Loop principal si lo pones arriba de éste…
En ése caso prueba con wp_query :
http://snipplr.com/view/29054/wpquery-to-create-multiple-loops-category-columns/
01/03/2010
Espera…parece que me equivoque.
Que salgan tres noticias una determinada categoria y despues abajo sale otras tres de otra categoria, si, eso si lologro.
Pero lo que crei que hacia el script era que me colocaba anas columnas, es decir:
Columna categoria noticias y bajo esta salen tres noticias..al lado categoria CINE y salen las tres de ésta…..es decir tipo revista o periodico.
01/03/2010
Oookay, entonces lo que tienes que hacer es añadir HTML (en index.php por ejemplo) y CSS en style.css, del tema que estés usando, para crear las columnas.
He hecho un copy/paste en snipplr aquí :
http://snipplr.com/view/29063/html–css-creando-varios-loops-en-varias-columnas/
Dime si funciona, saludos
02/03/2010
Perfecto!!!!!! pero asumo que las fotos no me salen porque el espacio de las columnas es mas pequeño que la fotos no?…Mi amigo, llevo meses buscando esta solucion y la encontre contigo…muchas gracias..pero ahora ( ya que empezaste a ayudarme) como le haria para que qedara asi: http://www.luchosarmiento.com/images/CATEGORIAS-HORIZONTAL.jpg
Con tu tutorial ha quedado asi:http://www.cootransurb.org/admin/
Muchisiiiiiiiiiimas gracias!!!!!!!
02/03/2010
Estoy muy contento…ya casi doy con lo que buscaba.
He creado una plantilla en Artisteer a manera de prueba, por favor mirala:http://www.cootransurb.org/admin/ veo que las fotos no me salen..porque sera?
De nuevo mil gracias!
02/03/2010
Logre hacer lo que te envie en la imagen (una categoria arriba y el resto en columnas), pero no logro que salgan las fotos de las categorias colocadas en columnas.
02/03/2010
Una pregunta amigo Ignacio:
En alguna ocasion logre hacer lo de las columnas en tablas es eso correcto, mira este ejemplo: http://www.luchosarmiento.com/wp7/
02/03/2010
Hola Luchosar,
Si quieres que te salgan las imágenes para cada artículo te recomiendo este método :
http://www.forosdelweb.com/f118/tutorial-como-extraer-miniaturas-imagenes-wordpress-653664/
Luego, antes de the_excerpt, usas la miniatura.
Lo único que hay que tener en cuenta es que funciona sólo con las imágenes que hayas subido a través de WordPress (no así con las linkadas en internet).
02/03/2010
Pero…en el loop original si me carga las imagenes.
02/03/2010
Lo otro amigo es que no me aaparece el link al desarrollo de la noticia.
Grcias por tu tiempo y ayuda.
02/03/2010
Hola Luchosar, para el link a la notícia completa, tienes que incluír en el código the_permalink. Código actualizado.
Para las imágenes, creo que tendrías que cambiar the_excerpt por the_content, o bién, en el Editor, rellenar el campo ‘Extracto / Excerpt’ con una imagen (escrita en HTML) y, el resto del texto introductorio.
Pero ambas soluciones son en plan ‘rápido’, yo te recomiendo el link anterior, o ésta otra manera, que también está muy bién : http://www.todowp.org/wordpress-2-9-y-la-funcion-post-image/
04/03/2010
PERFECTO…
Me funciono con the_content.
Solo dos ultimas cosillas (perdon x el abuso)
Como le coloco los titulos de las categorias en rojo, y lo otro, si coloco tres noticias de una categoria se repite el titulo de la categoria es decir si coloco ECONOMIA, sale la noticia de esta y debajo de esta de nuevo se repite ECOMOMIA…seria genuial que solo apareciera una sola vez y debajo de esta las tres noticias de ECONOMIA.
Arreglando ese detallido doy por felizmente satisfecho este tema.
De nuevo mi agradecimiento eterno amigo Ignacio!
Ver como voy aqui: http://www.cootransurb.org/admin/
04/03/2010
Hola Luchosar, nuevo código en snipplr, sólo tienes que reemplazar “Categoría 1″, “Categoría 2″, etc, por las distintas categorías que tengas, y añadir el CSS para los h5 de las categorías.
Pero como ya nos alejamos del tema te recomiendo pasarte por el foro de TodoWordPress si tienes más preguntas!
Saludos
04/03/2010
MARAVILLOSO!!!!!!!!
Solo me resta darte las gracias por tu tiempo, y el generoso sentimiento de compartir tus conocimientos, llevo meses buscando esto solo aqui en http://www.todowp.org lo encontrté.
Doy por cerrado el tema.
GRACIAS!
07/03/2010
A tí Luchosar :)
Deja tu comentario