Tornar o primeiro post diferente do resto?

3

Oi eu estou usando o código abaixo para chamar post de uma determinada categoria em certos tipos de post, mas como faço para o estilo para que eu possa fazer o primeiro post diferente do resto do post.

<?php
$queryObject = new  Wp_Query( array(
        'showposts' => 4,
        'post_type' => array('pretty-little-liars', 'revenge', 'once-upon-a-time'),
        'category_name' => celebrity,
            'orderby' => 1,
        ));
// The Loop!
if ($queryObject->have_posts()) {
?>

<?php
while ($queryObject->have_posts()){
    $queryObject->the_post();
    ?>

<a href="<?php the_permalink(); ?>" title="<?php printf(__( 'Read %s', 'wpbx' ), wp_specialchars(get_the_title(), 1)) ?>">
                    <?php the_post_thumbnail('video-post'); ?>
                    </a>

<?php echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' ago'; ?>

               <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>


<?php
}
?>
<?php wp_reset_postdata();
}
?>
    
por Mihad Aiko 16.01.2013 / 06:37

3 respostas

7

Você pode verificar current_post no loop:

if($queryObject->have_posts()) {
    while($queryObject->have_posts()) {
        $queryObject->the_post();
        if( 0 == $queryObject->current_post ) {
            // this is the first post
        } else {
            // not the first post
        }
    }
}
    
por Milo 16.01.2013 / 06:55
2

Se você não se importa com uma pequena marcação extra, você pode colocar a primeira postagem em um div + usando sua classe para dar estilo a essa postagem de maneira diferente.

<?php
   $queryObject = new  Wp_Query( array(
        'showposts' => 4,
        'post_type' => array('pretty-little-liars', 'revenge', 'once-upon-a-time'),
        'category_name' => celebrity,
            'orderby' => 1,
        ));

  // The Loop
  if ( $queryObject->have_posts() ) :
      $i = 0;
      while ( $queryObject->have_posts() ) :
          $queryObject->the_post();
          ?>
          <?php if ( $i == 0 ) : ?>
              <div class="first-post">
          <?php endif; ?>
          <a href="<?php the_permalink(); ?>" title="<?php printf(__( 'Read %s', 'wpbx' ), wp_specialchars(get_the_title(), 1)) ?>">
              <?php the_post_thumbnail('video-post'); ?>
          </a>

          <?php echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' ago'; ?>

          <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
          <?php if ( $i == 0 ) : ?>
              </div>
          <?php endif; ?>    
          <?php $i++; ?>
      <?php endwhile; ?>
  <?php endif; ?>
    
por Richard Sweeney 16.01.2013 / 10:57
0

Você pode fazer algo assim:

        <?php
            $queryObject = new  Wp_Query( array(
                    'showposts' => 4,
                    'post_type' => array('pretty-little-liars', 'revenge', 'once-upon-a-time'),
                    'category_name' => celebrity,
                        'orderby' => 1,
                    ));

        // Initiate some counter to point the first post

        $post_counter = 0;

            // The Loop!
            if ($queryObject->have_posts()) {

            while ($queryObject->have_posts()){
                $queryObject->the_post();

        if(!$post_counter)
        {
                ?>

    /* Custom styling for the first post */       

            <?php
        }
    else
    {    
         /* common styling for the rest of the posts */    
    }

$post_counter+=1;

            }

         wp_reset_postdata();

            }

        ?>
    
por Rohit Pande 16.01.2013 / 10:59

Tags