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

Cómo no mostrar el primer post de una cadena

Estas en el tema de Cómo no mostrar el primer post de una cadena en el foro de WordPress en Foros del Web. Hola foreros, Cómo puedo hacer para que de la siguiente cadena, no muestre el primer post??: <?php if (have_posts()) : $i = 0; ?> <?php ...
  #1 (permalink)  
Antiguo 24/07/2013, 22:52
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Cómo no mostrar el primer post de una cadena

Hola foreros,

Cómo puedo hacer para que de la siguiente cadena, no muestre el primer post??:


<?php if (have_posts()) : $i = 0; ?>
<?php while (have_posts()) : the_post(); $i++; ?>


<?php endwhile; ?>
<?php get_constructor_navigation(); ?>
<?php else: get_constructor_nothing(); endif; ?>
  #2 (permalink)  
Antiguo 25/07/2013, 06:41
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 7 meses
Puntos: 656
Respuesta: Cómo no mostrar el primer post de una cadena

Una opción es agregar antes la siguiente línea:

<?php query_posts('offset=1'); ?>
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #3 (permalink)  
Antiguo 25/07/2013, 18:52
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cómo no mostrar el primer post de una cadena

Gracias por tu respuesta, pero no es a lo que me refiero. Voy a poner un ejemplo gráfico.

Dentro de una categoría tengo X posts. La idea, es que el primer post aparezca como una foto en grande destacada del resto. Por lo que, quiero es eliminar el primer post de la categoría (que sería el cual quiero destacar) para que no esté duplicado:

  #4 (permalink)  
Antiguo 26/07/2013, 05:28
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 7 meses
Puntos: 656
Respuesta: Cómo no mostrar el primer post de una cadena

Entonces para eso mejor es un contador.

Código PHP:
<?php
$contador 
0;
if ( 
have_posts() ) : while ( have_posts() ) : the_post(); 
$contador ++
if (
$contador == 1) { 
// Colocá la llamada a tu imagen grande y demás...
} else {
// Colocá tu llamada a un post normal
}
endwhile; endif;
?>
Con offset también lo podés hacer, pero te insume dos loops en vez de uno.
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #5 (permalink)  
Antiguo 26/07/2013, 18:03
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cómo no mostrar el primer post de una cadena

Qué se supone qué tengo que poner dentro de los códigos? El código del post, con el título, imagen, o....?
  #6 (permalink)  
Antiguo 26/07/2013, 18:10
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Cómo no mostrar el primer post de una cadena

Cita:
Iniciado por designermaster Ver Mensaje
Qué se supone qué tengo que poner dentro de los códigos? El código del post, con el título, imagen, o....?
Pon un poco de tu parte. Unes el primer consejo con el segundo consejo y ahí tienes la respuesta.
  #7 (permalink)  
Antiguo 26/07/2013, 22:26
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Cómo no mostrar el primer post de una cadena

Cita:
Iniciado por metacortex Ver Mensaje
Pon un poco de tu parte. Unes el primer consejo con el segundo consejo y ahí tienes la respuesta.
Esque ya lo probé, y no me funciona :S.

Puse varios echo, con los div y demás. Pero no me va...
  #8 (permalink)  
Antiguo 27/07/2013, 05:52
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 7 meses
Puntos: 656
Respuesta: Cómo no mostrar el primer post de una cadena

Te tiro un ejemplo

Código PHP:
Ver original
  1. <?php
  2. $contador = 0;
  3. if ( have_posts() ) : while ( have_posts() ) : the_post();
  4. $contador ++
  5. if ($contador == 1) {
  6. // acá comienza el bucle que llama solo a la entrada con imagen grande
  7. query_posts('cat=1&posts_per_page=1');
  8. if ( have_posts() ) : while ( have_posts() ) : the_post();
  9. ?>
  10. <div class="postGrandote">
  11. <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
  12. <?php the_post_thumbnail('grandotote'); ?>
  13. </div>
  14. <?php } else {
  15. // Colocá tu llamada a un post normal
  16. }
  17. endwhile; endif;
  18. ?>

Mas o menos te da una idea? Ahora después del else tenés que construir tu bucle para colocar las entradas que no están destacadas.
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #9 (permalink)  
Antiguo 27/07/2013, 11:47
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Cómo no mostrar el primer post de una cadena

Hola Nekko, recuerda que es necesario hacer la consulta query_posts() fuera del loop. En esta oportunidad tu condicional resulta eficaz para definir el valor de las variables a la hora de llamar a the_post_thumbnail(), así como las clases CSS que necesitemos para aplicar la personalización. No he probado lo siguiente pero debería funcionar:

Código PHP:
Ver original
  1. query_posts('parámetros...');
  2.  
  3. $contador = 0;
  4. $clase = 'mi-clase';
  5. $tamano = 'thumbnail';
  6.  
  7. if ( have_posts() ) : while ( have_posts() ) :
  8.     the_post();
  9.     $contador ++;
  10.  
  11.     if ($contador == 1) {
  12.         $clase = 'clase-primer-post';
  13.         $tamano = 'large';
  14.     }
  15.  
  16.     echo'
  17.     <div class="'. $clase .'">
  18.         <h2>'. the_title() .'</h2>
  19.         '. the_post_thumbnail( $tamano ); .'
  20.         <p>'. the_content() .'</p>
  21.     </div>';
  22.  
  23. else:
  24.     echo 'No hay entradas';
  25. endif;
  26.  
  27. wp_reset_query();
Aunque te comento que, personalmente, en estos casos siempre me voy por los múltiples loops. La diferencia en la carga del servidor es mínima, mientras obtengo más (pero mucho más) control en el diseño (aquí hay más detalles).
  #10 (permalink)  
Antiguo 28/07/2013, 20:29
Avatar de raid_  
Fecha de Ingreso: diciembre-2010
Mensajes: 132
Antigüedad: 13 años, 11 meses
Puntos: 12
Respuesta: Cómo no mostrar el primer post de una cadena

Pero el jquery_posts, no es necesario si lo que estas modifican es por ejemplo category.php, solo quiere mostrar el primer post de forma diferente


Cita:
Iniciado por metacortex Ver Mensaje
Hola Nekko, recuerda que es necesario hacer la consulta query_posts() fuera del loop. En esta oportunidad tu condicional resulta eficaz para definir el valor de las variables a la hora de llamar a the_post_thumbnail(), así como las clases CSS que necesitemos para aplicar la personalización. No he probado lo siguiente pero debería funcionar:

Código PHP:
Ver original
  1. query_posts('parámetros...');
  2.  
  3. $contador = 0;
  4. $clase = 'mi-clase';
  5. $tamano = 'thumbnail';
  6.  
  7. if ( have_posts() ) : while ( have_posts() ) :
  8.     the_post();
  9.     $contador ++;
  10.  
  11.     if ($contador == 1) {
  12.         $clase = 'clase-primer-post';
  13.         $tamano = 'large';
  14.     }
  15.  
  16.     echo'
  17.     <div class="'. $clase .'">
  18.         <h2>'. the_title() .'</h2>
  19.         '. the_post_thumbnail( $tamano ); .'
  20.         <p>'. the_content() .'</p>
  21.     </div>';
  22.  
  23. else:
  24.     echo 'No hay entradas';
  25. endif;
  26.  
  27. wp_reset_query();
Aunque te comento que, personalmente, en estos casos siempre me voy por los múltiples loops. La diferencia en la carga del servidor es mínima, mientras obtengo más (pero mucho más) control en el diseño (aquí hay más detalles).

Etiquetas: Ninguno
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 15:43.