¿Por qué este bucle solo funciona en la página de inicio?

2

He estado tratando de resolver esto todo el día ahora.

Considere el siguiente código a continuación:

<div class="slider">
    <div class="slides"><?php
       wp_reset_query();
         if(have_posts()) : 
           while (have_posts()) : 
             the_post();
             if(is_sticky()) : ?>
               <div class="slide"><a rel="bookmark" href="<?php the_permalink() ?>"><?php echo the_post_thumbnail('full'); ?><h2><?php the_title(); ?></h2></a></div>
             <?php endif;
           endwhile; 
         else: ?>
           <p>Sorry, no posts matched your criteria.</p>
         <?php endif; ?>
      <div class="left-arrow"></div>
      <div class="right-arrow"></div>
  </div>
</div>

El bucle anterior no funciona en las páginas del sitio (por ejemplo, página 2/3/4) o 404.php, pero funciona perfectamente bien en la página 1 (index.php).

¿Por qué es eso y cómo soluciono esto?

    
pregunta railgun 24.03.2013 - 22:18

2 respuestas

5

Si miras ese código con cuidado, lo único que se imprime son publicaciones pegajosas:

if(is_sticky()) : ?>
   <div class="slide"><a rel="bookmark" href="<?php the_permalink() ?>"><?php echo the_post_thumbnail('full'); ?><h2><?php the_title(); ?></h2></a></div>
<?php endif;

Tienes más posibilidades de tener publicaciones adhesivas en la página 1 del índice que en cualquier otra página posterior. 404 páginas no tienen publicaciones, pegajosas o no. Es por eso que son 404 páginas.

Creo que es por eso que el código no funciona en algunas páginas, pero no es que el código esté roto, solo que las condiciones para imprimir las publicaciones Datos y no cumplidos.

    
respondido por el s_ha_dum 24.03.2013 - 22:46
0

Elimine el código if(is_sticky()) y el código endif del siguiente fragmento de código:

if(is_sticky()) : ?>
                <div class="slide"><a rel="bookmark" href="<?php the_permalink() ?>"><?php echo the_post_thumbnail('full'); ?><h2><?php the_title(); ?></h2></a></div>
  <?php endif;

Esta declaración condicional le dice a WordPress que solo se ejecute si la publicación está pegajosa. Las publicaciones típicamente pegajosas aparecen solo en la página 1.

    
respondido por el Pat 24.03.2013 - 22:58

Lea otras preguntas en las etiquetas