@Chernnorizec

Почему криво работает wp_get_attachment_image_src?

Здравствуйте. Есть идея на плашках галерей выводить по 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(); ?>
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы