Limitar post en home

Estado
No está abierto para más respuestas.
Mensajes
213
Puntuación de reacción
0
Buenas gente, ando volviéndome loco con esto, ya se que es una tontería de las grandes, pero sinceramente no consigo hacerlo funcionar, explico...

En el home estoy creando una sección de noticias y eventos, tengo la categoría creada, he estado mirando por foros como limitar, he probado a limitar desde el functions, problema de limitar desde el functions, si limito la categoría de "Noticias" a 2 se limita a 2 en todo el theme no solo en el home, por lo tanto he probado a limitarlo de esta manera, esto es lo que tengo en noticias.php, que va con un include en el home.php

Código:
<div id="noticias">
	 
    <?php query_posts('category_name=Noticias&posts_per_page=2' );
while ( have_posts() ) : the_post(); ?>
<div class="news">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'homepage-thumb' ); } ?>
<h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
<?php endwhile; wp_reset_query(); ?>
     
     
 
</div><!-- end of noticias -->

¿Problema de tener el código así?

Me aparecen os post que tengo en la categoría de noticias, pero no me los limita con "posts_per_page=2" y me salen 5 resultados (el imite que tengo puesto en el functions para todas las categorías)

Ahora si cambio ese código por este:

Código:
<div id="noticias">
	 
    <?php query_posts('category=Noticias&posts_per_page=2' );
while ( have_posts() ) : the_post(); ?>
<div class="news">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'homepage-thumb' ); } ?>
<h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
<?php endwhile; wp_reset_query(); ?>
     
     
 
</div><!-- end of noticias -->

En este caso si que me funciona el"posts_per_page=2" pero no me coge los post de la categoría de noticias y simplemente pilla los 2 últimos post creados.

Esto me sucede solo en el home.php (o en el index.php aunque uso e home) en la sección que tengo de noticias eso no me sucede pues el código es distinto, claro esta que en la sección de noticias es distinto por que es el único bucle que se usa, he probado a adaptarlo al index en e noticias.php, pero nada de nada, sigue fallando lo mismo

¿Alguien tiene idea de por que puede ser?

Gracias por adelantado, espero vuestras respuestas por que es casi lo ultimo que me falta para terminar el theme y poder entregarlo ya (y olvidarme por fin de wp.. )

- - - Actualización- - -

Me respondo yo mismo, y o dejo aquí por si a alguien mas le pasa y anda tan perdido y de tan mala leche como yo despues de dar tropecientasmil vueltas al asunto.

Al final he conseguido solucionando cambiando el código de antes por este:

Código:
<div id="noticias">
	 
    <?php  
query_posts( 
			array (
					'category_name' => 'Noticias',
					'showposts' => 1,
					'paged' => get_query_var('paged')
					)
			);
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
	<div id="entrada">
    <div class="imagen-post-thumbnail">
	<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'homepage-thumb' ); } ?>
    </div>
	<h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
	<?php the_excerpt(); ?>
    </div>
	</div>
	
        
       
<?php endwhile; endif; ?>
     
     
 
</div><!-- end of noticias -->

Como podéis ver lo que he hecho ha sido guardar todos los datos en un array en query_post, de esta manera toma los datos que tengamos en el array en lugar de coger los valores que tengamos por defecto en el functions

Un saludo!
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Yo lo haría con WP_Query, es lo recomendado, ejemplo (no lo he probado):

PHP:
<div id="noticias">
<?php 
     $paginado = ( get_query_var('page') ) ? get_query_var('page') : 1;
     $consulta = new WP_Query( array( 'category_name' => 'Noticias', 'posts_per_page' => '2', 'paged' => $paginado ) );     while ( $consulta->have_posts() ) :      $consulta->the_post();
?>
 <div class="news"> 
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'homepage-thumb' ); } ?> 
<h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2> 
<?php the_excerpt(); ?>
 </div> 
<?php 
   endwhile; 
    wp_reset_query();
    wp_reset_postdata();
    unset( $consulta, $paginado );
?>
 
Estado
No está abierto para más respuestas.
Arriba