sigmasimple
@sigmasimple
Beginner

Как выводить разные изображения на слайдер?

steamchenin.com

Подскажите, пожалуйста, как вывести разные изображения на слайдер? В WP загружено несколько изображений, но выводится только последнее по дате загрузки.

<?php
    //Вывод записей
    $args = array(
	'post_type' => 'slider',
	'posts_per_page' => -1
);
	$slider = new WP_Query( $args );
	?>

	<?php if( $slider->have_posts() ) : while ( $slider->have_posts() ) : $slider->the_post(); ?>

	<!-- Записи -->
	<div id="slider" class="owl-carousel owl-theme">
		<div >
		<img src="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); echo $large_image_url[0]; ?>" alt="<?php the_title(); ?>">
		</div>
		
		<div>
		<img src="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); echo $large_image_url[0]; ?>" alt="<?php the_title(); ?>">
		</div>

		<div>
		<img src="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); echo $large_image_url[0]; ?>" alt="<?php the_title(); ?>">
		</div>

		<div>
		<img src="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); echo $large_image_url[0]; ?>" alt="<?php the_title(); ?>">
		</div>

	</div>

	<?php endwhile; else: ?>

			<h3>Картинок нет</h3>

	<?php endif; ?>
  • Вопрос задан
  • 843 просмотра
Пригласить эксперта
Ответы на вопрос 3
@DP-Studio
20 лет веб-разработки
У вас в коде выводится одна и та же картинка - прикрепленная к посту миниатюра.
<img src="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); echo $large_image_url[0]; ?>" alt="<?php the_title(); ?>">

сделайте линки на картинки вот так:

<img src="<?php bloginfo('template_directory'); ?>/assets/img/slider/pic1.jpg">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/slider/pic2.jpg">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/slider/pic3.jpg">


А картинки загрузите в папку /вашатема/assets/img/slider/
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Вы неправильно используете WordPress Loop. Попробуйте так:
<?php
// Получение записей
$args = array(
  'post_type' => 'slider',
  'posts_per_page' => -1
);
$slider = new WP_Query( $args );

// Вывод результатов
if( $slider->have_posts() ) : 
?>

  <!-- Записи -->
  <div id="slider" class="owl-carousel owl-theme">

  <?php 
  // Цикл!
  while ( $slider->have_posts() ) : $slider->the_post(); 
  ?>

    <div>
      <img src="<?php the_post_thumbnail_url( 'medium' ); ?>" alt="<?php the_title(); ?>">
    </div>

  <?php 
  // Конец цикла
  endwhile; 
  ?>

  </div>
  <!-- Записи закончились -->

<?php
// Если записи не были обнаружены
else: 
?>

  <h3>Картинок нет</h3>

<?php endif; ?>


Примечание: функция the_post_thumbnail_url() - новая, с версии WordPress 4.4. Если у вас свежая версия (а должна быть свежая), то будет прекрасно работать. Если старая - придется менять на старый обходной путь через attachment_src.
Ответ написан
Комментировать
sigmasimple
@sigmasimple Автор вопроса
Beginner
Спасибо за помощь и структуру цикла, удалось решить через MultiPostThumbnails
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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