Здравствуйте. Есть идея на плашках галерей выводить по 3 изображения из галереи. Превьюшки. Делаю это с помощью
$images = get_attached_media('image' ); // get attached media
foreach ($images as $image) {
$i++; // С каждым обходом увеличиваем переменную на 1
if($i > 5) {
break; // При достижении i > 3 останавливаем выборку
}
$ximage = wp_get_attachment_image_src($image->ID,'gallery-preview');
echo '<img src="' .$ximage[0] . '" class="rounded-circle me-2 gallery-preview" />';
}
Но выводятся они только для первой записи типа Галерея. Если убрать break то выводятся для всех, но не по 3, а все. Подскажите, как поправиться? Может вне цикла этот foreach выводить надо? Вот полный код
<?php
/*
* Template name:Галереи
* Template post type: page
*/
?>
<?php get_header(); ?>
<div class="osn_content">
<h1 class="text-center my-5">Галереи</h1>
<?php if(have_posts()) : while (have_posts()) : the_post(); ?>
<div class="container ">
<div class="row">
<div class="col-12">
<?php the_content(); ?>
</div>
</div>
</div>
<?php endwhile; endif;
wp_reset_postdata(); // reset the query
?>
<div class="container mb-3">
<div class="row">
<div class="col-12 cat-badges">
<?php // Get the taxonomy's terms
$terms = get_terms(
array(
'taxonomy' => 'gallery_cat',
'hide_empty' => false,
)
);
// Check if any term exists
if ( ! empty( $terms ) && is_array( $terms ) ) {
// Run a loop and print them all
foreach ( $terms as $term ) { ?>
<a href="<?php echo esc_url( get_term_link( $term ) ) ?>" class="badge rounded-pill bg-dark mx-1">
<?php echo $term->name; ?>
</a><?php
}
}
?>
</div>
</div></div>
<!--gallery loop-->
<div class="container ">
<div class="row row-cols-1 g-3 row-cols-md-2 row-cols-lg-3">
<?php $args = array(
'post_type' => 'gallery',
'publish' => true,
'posts_per_page' => 9,
'paged' => get_query_var('paged'),
);
query_posts($args);
if ( have_posts() ) : while (have_posts()) : the_post(); ?>
<div class="col">
<div class="card card-gallery h-100">
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail('post-img', array('class' => 'img-fluid card-img-top'));} else { ?>
<a href="<?php the_permalink() ?>"><img src="<?php bloginfo('template_directory'); ?>/pics/default.webp" class="img-fluid card-img-top" alt="<?php the_title(); ?>" title="<?php the_title();?>" /></a>
<?php } ?>
<div class="card-img-overlay border-0 d-flex flex-column">
<div class="d-flex flex-row preview-container">
<?php
$images = get_attached_media('image' ); // get attached media
foreach ($images as $image) {
$i++; // С каждым обходом увеличиваем переменную на 1
if($i > 5) {
break; // При достижении i > 3 останавливаем выборку
}
$ximage = wp_get_attachment_image_src($image->ID,'gallery-preview');
echo '<img src="' .$ximage[0] . '" class="rounded-circle me-2 gallery-preview" />';
}
?>
</div>
<div class="mt-auto text-white gallery-card-bottom p-3">
<h5 class="card-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h5>
<i class="fas fa-eye me-1"></i><?php echo get_post_views(get_the_ID()); ?>
</div>
</div>
</div> <!--card-->
</div> <!--col-->
<?php endwhile; ?>
</div></div>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<script>
var ajaxurl = '<?php echo site_url() ?>/wp-admin/admin-ajax.php';
var true_posts = '<?php echo serialize($wp_query->query_vars); ?>';
var current_page = <?php echo (get_query_var('paged')) ? get_query_var('paged') : 1; ?>;
var max_pages = '<?php echo $wp_query->max_num_pages; ?>';
</script>
<div id="loadmore_gs3" class="btn site-btn mt-5 d-block w-50 mx-auto loadmore "> Показать еще</div>
<?php endif; ?>
<?php endif; ?>
<?php get_footer(); ?>