Подскажите как в WP вывести посты и к добавить класс ко 2 и3?

<?php
                        // параметры по умолчанию
                        $args = array(
                            'numberposts' => 3,
                            'category'    => 5,
                            'orderby'     => 'date',
                            'order'       => 'ASC',
                            'post_type'   => 'post',
                            'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
                        );
                        
                        $posts = get_posts( $args );
                        
                        foreach($posts as $post){ setup_postdata($post);
                            ?>
                            <?php the_post_thumbnail();?>
                            
                                
                                                        <?php
                        }
                        
                        wp_reset_postdata(); // сброс
                        ?>
                  

**что бы структура была вот такая

<div class="page__item" data-da=".c, 767.8">
                    
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/14.jpg" alt="Image" />
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/15.jpg" alt="Image" class="anim01" />
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/16.jpg" alt="Image" class="anim01" />
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/17.jpg" alt="Image" class="anim02" />
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/18.jpg" alt="Image" class="anim02" />
                    <img src="<?php bloginfo( 'template_url' );?>/assets/img/19.jpg" alt="Image" />
                  </div>

**


Ответы (2 шт):

Автор решения: Danila

Во-первых, если Вы хотите вывести 6 картинок, то 'numberposts' должен быть 6, а не 3.

Во-вторых, картинки лучше выводить тегом img с добавлением в src пути к файлу:

<img src="<?php the_post_thumbnail_url(); ?>" alt="">

Во-третьих, для присвоения класса отдельным картинкам нужно ввести переменную-счётчик, которая при каждой итерации будет увеличиваться на 1, и проверять, какой элемент идёт по счёту. Если 2-й и 3-й - добавляем картинке класс anim01, если 4-й и 5-й - класс anim02. А остальным никакой класс не добавляем.

       <?php $args = array(
            'numberposts' => 6,
            'category'    => 5,
            'orderby'     => 'date',
            'order'       => 'ASC',
            'post_type'   => 'post',
            'suppress_filters' => true,
        );
        
        $posts = get_posts( $args ); $i = 1; //добавляем счётчик ?>
        
        <div class="page__item" data-da=".c, 767.8">

            <?php foreach($posts as $post) {
                setup_postdata($post);
                if($i == 2 || $i == 3) { ?>
                <img src="<?php the_post_thumbnail_url(); ?>" alt="" class="anim01">
            <?php } else if($i == 4 || $i == 5) { ?>
                <img src="<?php the_post_thumbnail_url(); ?>" alt="" class="anim02">
            <?php } else { ?>
                <img src="<?php the_post_thumbnail_url(); ?>" alt="">
            <?php } $i++; //инкрементируем счётчик }
            wp_reset_postdata(); // сброс ?>

        </div>
→ Ссылка
Автор решения: Viktor

вот код:

<?php

  // параметры по умолчанию
  $args = array(
      'numberposts' => 3,
      'category'    => 5,
      'orderby'     => 'date',
      'order'       => 'ASC',
      'post_type'   => 'post',
      'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
  );
  $number = 0;
  $posts = new WP_Query( $args );
  $last_post = $posts->found_posts;
  while ( $posts->have_posts() ) : $posts->the_post();
  $number++;
  $custom_class = 'your_custom_class';
?>

  <?php

    $number;

    if( $number == 1 || $number = $last_post ) :
      $image = wp_get_attachment_image(
        get_the_post_thumbnail_id(),
        $size,
        false,
        array( 
          'class' => $custom_class
        )
      );
    else:
  
      $image = wp_get_attachment_image( get_the_post_thumbnail_id() );
    endif;

    echo $image;
    
  ?>
        
<?php 
  endwhile;
  wp_reset_postdata(); //сброс
?>

→ Ссылка