У меня есть пользовательский тип сообщения с пользовательскими сообщениями в блоге. У меня есть страница со списком всех постов, конечно. В каждом посте плитки реализован скользящий слайдер. И что мне нужно сделать, это показать все изображения из галереи в посте в этом скользком слайдере. Это не проблема. Я сделал это по этому коду:
<?php
while ( have_posts() ) : the_post();
if ( get_post_gallery() ) :
$gallery = get_post_gallery( get_the_ID(), false );
foreach( $gallery['src'] AS $src )
{
?>
<div style="width: 100%;">
<a href="<?php echo $src; ?>" class="fancybox"><img class="img-fluid" src="<?php echo $src; ?>" alt=""></a>
</div>
<?php
}
endif;
endwhile;
?>
Проблема в том, когда я добавляю второй пост с разными изображениями. Тогда на всех двух скользящих слайдерах есть изображения из двух галерей из двух разных постов. Как я могу определить эту разницу в этом l oop?
Также важно, чтобы плитки отображались поочередно. У первого есть текст слева, скользкий ползунок справа, у второго - текст справа, гладкий ползунок слева, третий - как у первого, четвертый - у второго. и др c. Поэтому я использовал вышеупомянутый l oop дважды.
Полный код страницы:
<?php $loop = new WP_Query( array( 'post_type'=>'journal', 'orderby'=>'post_id', 'order'=>'DESC' ) ); ?>
<?php if ( $loop->have_posts() ) : $i=0; ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); $i++; ?>
<div class="post-tile">
<?php if( $i % 2 ) : ?>
<div class="row align-items-center"> <!-- tile with text on left, slider on right -->
<div class="col-lg-6">
<div class="inner">
<h2 class="title"><?php the_title(); ?></h2>
<h3 class="etap"><?php the_field('etap') ?></h3>
<div class="content">
<?php the_excerpt(); ?>
</div>
</div>
<div class="slider-arrows">
<div class="slick-prev-custom slick-arrow" id="slickBuildingPrev">
<img src="<?php bloginfo('template_directory') ?>/assets/img/prev.png" alt="" class="img-fluid">
</div>
<div class="slick-next-custom slick-arrow" id="slickBuildingNext">
<img src="<?php bloginfo('template_directory') ?>/assets/img/next.png" alt="" class="img-fluid">
</div>
</div>
</div>
<div class="col-lg-6">
<div class="building-slick">
<?php
while ( have_posts() ) : the_post();
if ( get_post_gallery() ) :
$gallery = get_post_gallery( get_the_ID(), false );
foreach( $gallery['src'] AS $src )
{
?>
<div style="width: 100%;">
<a href="<?php echo $src; ?>" class="fancybox"><img class="img-fluid" src="<?php echo $src; ?>" alt=""></a>
</div>
<?php
}
endif;
endwhile;
?>
</div>
</div>
</div>
<?php else : ?> <!-- tile with text on right, slider on left -->
<div class="row align-items-center flex-column-reverse flex-lg-row">
<div class="col-lg-6">
<div class="building-slick">
<?php
while ( have_posts() ) : the_post();
if ( get_post_gallery() ) :
$gallery = get_post_gallery( get_the_ID(), false );
foreach( $gallery['src'] AS $src )
{
?>
<div style="width: 100%;">
<a href="<?php echo $src; ?>" class="fancybox"><img class="img-fluid" src="<?php echo $src; ?>" alt=""></a>
</div>
<?php
}
endif;
endwhile;
?>
</div>
</div>
<div class="col-lg-6">
<div class="inner">
<h2 class="title"><?php the_title(); ?></h2>
<h3 class="etap"><?php the_field('etap') ?></h3>
<div class="content">
<?php the_excerpt(); ?>
</div>
</div>
<div class="slider-arrows">
<div class="slick-prev-custom slick-arrow" id="slickBuildingPrev">
<img src="<?php bloginfo('template_directory') ?>/assets/img/prev.png" alt="" class="img-fluid">
</div>
<div class="slick-next-custom slick-arrow" id="slickBuildingNext">
<img src="<?php bloginfo('template_directory') ?>/assets/img/next.png" alt="" class="img-fluid">
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
<?php endwhile; wp_reset_query(); ?>
<?php endif; ?>