Подскажите как в 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(); //сброс
?>