Отображение миниатюры только для самого первого поста в цикле?
25 мар. 2011 г., 09:46:52
Просмотры: 17.3K
Голосов: 3
Как лучше всего использовать <?php the_post_thumbnail();?>
в моем цикле, НО показывать миниатюру ТОЛЬКО для ПЕРВОГО поста? То есть, чтобы изображение отображалось только у первого поста в цикле?
Вот пример цикла, который показывает изображение для ВСЕХ постов:
<!-- Начало цикла. -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Вывод заголовка как ссылки на постоянную ссылку поста. -->
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<!-- Вывод миниатюры поста -->
<?php the_post_thumbnail();?>
<!-- Вывод даты и ссылки на другие посты этого автора. -->
<small><?php the_time('F jS, Y') ?> от <?php the_author_posts_link() ?></small>
<!-- Вывод содержимого поста в div-блоке. -->
<div class="entry">
<?php the_content(); ?>
</div>
Спасибо!

OneFishTaco
175
Все ответы на вопрос
4
1
- добавьте переменную перед циклом (до while), например $first = true;
- добавьте проверку внутри цикла для этой переменной
- после использования измените флаг
Код:
<!-- Начало цикла. -->
<?php $first = true; ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Выводим заголовок как ссылку на постоянную ссылку записи. -->
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<!-- Выводим миниатюру изображения для записи -->
<?php if ( $first ): ?>
<?php the_post_thumbnail();?>
<?php $first = false; ?>
<?php endif; ?>
<!-- Выводим дату и ссылку на другие записи этого автора. -->
<small><?php the_time('F jS, Y') ?> от <?php the_author_posts_link() ?></small>
<!-- Выводим содержимое записи в div блоке. -->
<div class="entry">
<?php the_content(); ?>
</div>

petermolnar
1K
25 мар. 2011 г. 10:05:53
1
Вот что я использую в своих проектах, и это хорошо работает для меня. Я модифицировал предоставленный вами код, чтобы он подходил. Просто вставьте его, и он будет отображать миниатюру записи только для первой записи.
<!-- Начало цикла. -->
<?php $i = 1 ; ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Отображение заголовка как ссылки на постоянную ссылку записи. -->
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<?php if ($i == 1): ?>
<!-- Отображение миниатюры изображения для записи -->
<?php the_post_thumbnail();?>
<?php endif; ?>
<!-- Отображение даты и ссылки на другие записи этого автора. -->
<small><?php the_time('F jS, Y') ?> от <?php the_author_posts_link() ?></small>
<!-- Отображение содержимого записи в div-блоке. -->
<div class="entry">
<?php the_content(); ?>
</div>
<?php $i++; endwhile; endif; ?>

Dwayne Charrington
3.7K
25 мар. 2011 г. 13:00:41
Похожие вопросы