Как показать показанное изображение как текущее?
-
16-10-2019 - |
Вопрос
На правой рельсе здесь: http://www.julianamaeberger.com/soma/sample-testimonial-3/ Я показываю случайный пост «отзыв». Ниже я показываю все изображения для категории «отзывы», чтобы вы могли пролистывать изображения и выбрать, куда вы хотите пойти дальше.
Я хочу выделить изображение, которое связано с контентом выше, но не могу понять, как это сделать. Это мой первый раз, когда я строил шаблоны, поэтому я могу идти на это неправильно. Любая помощь в правильном направлении будет очень оценена.
Вот код для правильного рельса:
<div class="rightcolumn">
<div class="testimonial">
<h3>Testimonials</h3>
<?php
$postslist = get_posts('category_name=testimonial&numberposts=1&orderby=rand');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<?php the_content(); ?>
<?php endforeach; ?>
</div>
<div class="carousel default">
<div class="jCarouselLite">
<ul class="portfolio">
<?php
$postslist = get_posts('category_name=testimonial&numberposts=-1&order=DES');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<li>
<?php the_post_thumbnail( 'nav' ); ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<script type="text/javascript">
$(".default .jCarouselLite").jCarouselLite({
btnNext: ".default .next",
btnPrev: ".default .prev",
visible: 3,
scroll: 3,
speed:100
});
</script>
</div>
</div>
Решение
Как вы хотите выделить это изображение, характерно для вашего макета, но, вероятно, включает в себя настройку класса для <li>
окружающий это? Вы можете сделать это, сравнив идентификатор сообщения, который вы отображали с идентификатором поста, о котором вы показываете миниатюру.
В своем первом цикле вы сохраняете идентификатор:
$current_testimonial_id = get_the_ID();
Во втором цикле вы сравниваете его с текущей миниатюрой:
<li <?php if ( get_the_ID() == $current_testimonial_id ) { echo ' class="highlighted"'; } ?>>
Быстрый совет, если вы работаете с несколькими петлями: большинство функций шаблонов принимают параметры идентификатора после, поэтому вам не нужно использовать setup_postdata()
функция, которая устанавливает некоторые глобальные переменные. Это удобно, если вам снова понадобится «основной» пост -запрос после вашего дополнительного цикла. Таким образом, следующий код работает только для второго цикла:
<ul class="portfolio">
<?php
$testimonials = get_posts('category_name=testimonial&numberposts=-1&order=DESC');
foreach ($testimonials as $testimonial) :
?>
<li <?php if ( $testimonial->ID == $current_testimonial_id ) { echo ' class="highlighted"'; } ?>>
<?php echo get_the_post_thumbnail( $testimonial->ID, 'nav' ); ?>
</li>
<?php endforeach; ?>
</ul>