@redesupar

Как обрезать фотографии с acf?

Здравствуйте! Хочу обрезать фотографии с поля галерея, как это сделать? дело в том что у меня там слайдер с миниатюрами, мне надо в одном вытаскивать в разных размерах.
Было так и всё было окей, но из за больших размеров фото разругались сеошники, просят сразу уменьшенную версию
<?php if( have_rows('portfolio') ):
    // loop through the rows of data
    while ( have_rows('portfolio') ) : the_row();
   		$kvadrat = get_sub_field('kvadrat');
		$czena_za_rabotu = get_sub_field('czena_za_rabotu');
		$mestopolozhenie = get_sub_field('mestopolozhenie'); 
							
        $images = get_sub_field('raboty');
						
							?>
        
              	  <div class="grid__item">
                                <div class="work-slider">
                                    <div class="work-slider-main swiper">
                                        <div class="swiper-wrapper">      
					<?  if( $images ): ?>
        <?php foreach( $images as $image ): ?>
						
                                            <div class="swiper-slide work-slide">
                                                <div class="work-slide__img">
<img src="<?php echo $image; ?>" alt="" />
                                                </div>
                                                <div class="work-slide__info">
                                                    <p class="work-slide__text work-slide__text--square"><? echo $kvadrat;?></p>
                                                    <p class="work-slide__text work-slide__text--calendar"><? echo $czena_za_rabotu;?></p>
                                                    <p class="work-slide__text work-slide__text--pin"><? echo $mestopolozhenie;?></p>
                                                </div>
                                            </div>
               <?php endforeach; endif;?>
                                    
                                        </div>
                                        <div class="work-slider__button work-slider__button--prev"></div>
                                        <div class="work-slider__button work-slider__button--next"></div>
                                    </div>
                                    <div class="work-slider-nav swiper">
                                        <div class="swiper-wrapper">
															<?  if( $images ): ?>
        <?php foreach( $images as $image ): ?>
                                                      
                                       <div class="swiper-slide work-slide work-slide--nav">
                                                <div class="work-slide__img">
                                              <img src="<?php echo $image; ?>" alt="" /> </div>
                                            </div>
               <?php endforeach; endif;?>
                                       
                                        </div>
                                    </div>
                                </div>
                            </div>
							
       <?php endwhile; endif; ?>


Делаю так, но упорно не видит картинку

<?php if( have_rows('portfolio') ):
    // loop through the rows of data
    while ( have_rows('portfolio') ) : the_row();
   		$kvadrat = get_sub_field('kvadrat');
		$czena_za_rabotu = get_sub_field('czena_za_rabotu');
		$mestopolozhenie = get_sub_field('mestopolozhenie'); 
							
        $images = get_sub_field('raboty');
		  $size = 'galery';
  $thumb = $images['sizes'][ $size ];				
							?>
        
              	  <div class="grid__item">
                                <div class="work-slider">
                                    <div class="work-slider-main swiper">
                                        <div class="swiper-wrapper">      
					<?  if( $images ): ?>
        <?php foreach( $images as $image ): ?>
						
                                            <div class="swiper-slide work-slide">
                                                <div class="work-slide__img">
<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
                                                </div>
                                                <div class="work-slide__info">
                                                    <p class="work-slide__text work-slide__text--square"><? echo $kvadrat;?></p>
                                                    <p class="work-slide__text work-slide__text--calendar"><? echo $czena_za_rabotu;?></p>
                                                    <p class="work-slide__text work-slide__text--pin"><? echo $mestopolozhenie;?></p>
                                                </div>
                                            </div>
               <?php endforeach; endif;?>
                                    
                                        </div>
                                        <div class="work-slider__button work-slider__button--prev"></div>
                                        <div class="work-slider__button work-slider__button--next"></div>
                                    </div>
                                    <div class="work-slider-nav swiper">
                                        <div class="swiper-wrapper">
															<?  if( $images ): ?>
        <?php foreach( $images as $image ): ?>
                                                      
                                       <div class="swiper-slide work-slide work-slide--nav">
                                                <div class="work-slide__img">
                                              <img src="<?php echo $image; ?>" alt="" /> </div>
                                            </div>
               <?php endforeach; endif;?>
                                       
                                        </div>
                                    </div>
                                </div>
                            </div>
							
       <?php endwhile; endif; ?>


добавил это
$size = 'galery';
  $thumb = $images['sizes'][ $size ];


и пытаюсь вывести так
<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Судя по верхнему коду в поле хранится прямой путь к изображению, соответственно никакого массива данных там нет, и то, что выводите - фигня. Для того, что бы заработало надо или изменить данные сохраняемые в поле на ID или массив.
Тогда заработает этот пример https://www.advancedcustomfields.com/resources/gal... для ID и следующий для Массива

Или, как вариант, что бы выйти из ситуации когда хранится url - подключить вот это https://github.com/bfintal/bfi_thumb

И

<!--  это -->
 <img src="<?php echo $image; ?>" alt="" />

<!--  заменить на это -->
 <img src="<?php echo bfi_thumb( $image,  [  'width' => 400, 'height' => 300 ] ); ?>" alt="" />

где
'width' => 400, 'height' => 300
нужные размеры изображения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы