Как показать показанное изображение как текущее?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/5238

  •  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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top